現在、カスタムポストタイプUIを使って、複数の投稿タイプを作っているのですが、
投稿タイプごとにアーカイブの表示数を変更したく、
試しにfunctions.phpに以下のように追記しました。
php
1function change_posts_per_page($query) { 2 /* 管理画面,メインクエリに干渉しないために必須 */ 3 if(is_admin() || ! $query->is_main_query()){ 4 return; 5 } 6 /* カテゴリーページの表示件数を変更する */ 7 if($query->is_post_type_archive('smile')){ 8 $query->set('posts_per_page', '1'); 9 return; 10 } 11} 12add_action( 'pre_get_posts', 'change_posts_per_page' ); 13
しかし、これだけでは表示数が変わらず、管理画面が原因かと思い、
表示設定で表示数を1にしましたが、これでもだめでした。
そして、最後にアーカイブテンプレートでpost_per_pageを1にしましたが
これでもできず、調べてみても上のやり方しか出てきません。
WordPressに詳しい方ご教示いただければと思います。
よろしくお願いいたします。
テンプレート
php
1 <?php 2 $args = array( 3 "post_type"=>"smile", 4 "post_per_page"=>2, 5 ); 6 $the_query = new WP_Query($args); 7 $counter = 0; 8 if($the_query->have_posts()): 9 while($the_query->have_posts()): $the_query->the_post(); ?> 10 <li class="grid <?php echo ($counter == 0) ? 'first':'normal'; ?>"> 11 <a href="<?php the_permalink(); ?>"> 12 <div class="post-fig"> 13 <?php the_automatic_thumbnail_url(get_template_directory_uri()."/common/img/base/noimage_xl.png", "tmb_cut_760x450"); ?> 14 </div> 15 <p class="tbborder-txt mincho">SMILE</p> 16 <p class="time"><?php the_time("Y.m.d"); ?></p> 17 <h2><?php the_title(); ?></h2> 18 <?php if($counter == 0): ?> 19 <div class="ex"><?php echo nl2br(get_the_excerpt()); ?></div> 20 <?php endif; ?> 21 <div class="gray-switch"> 22 <span>詳しくはこちら</span> 23 </div> 24 </a> 25 </li> 26 <?php $counter++; ?> 27 <?php endwhile; ?> 28 <?php endif; ?> 29
回答1件
あなたの回答
tips
プレビュー