WordPress 特定カテゴリーの表示件数設定
2014.04.20
一般的に表示件数をコントロールする場合はダッシュボードで表示件数を設定するか
<?php query_posts();?>
で設定する。
しかし…ブログページ1本だったら、前者でOK。
ブログの他に商品ページや実績ページなんかを投稿ページスタイル(カスタム投稿)で作る場合、要はブログ機能を複数使う場合はダッシュボードの設定だとブログと商品・実績ページの全てに反映されてしまう。
後者の
<?php query_posts();?>
の場合はページ送りが正常に行われない。(なぜか、2ページ目以降にも1ページの内容が反映されてしまう)
例えば、ブログのカテゴリーページ(アーカイブ含む)は表示件数を8件にしたいが、商品ページはサムネイルで32件表示したいなんてケースに出くわす可能性は高い。そんな時はどうすればいいの?
functions.phpに以下を書き込むと特定のカテゴリーの表示件数を設定できる!
<?php add_action( 'pre_get_posts', 'my_pre_get_posts' ); function my_pre_get_posts( $query ) { if ( $query->is_main_query() && ! is_admin() ) { if ( is_category()) { // カスタム投稿の場合はis_tax、カテゴリー指定は('5') $query->set( 'posts_per_page', 12 ); // 件数指定 } } } ?>
でOK!
上手くいきました!
補足
query_postsの場合も
<?php query_posts('2&paged='.$paged);?>
とやると、ページ送りが正常になるらしい
※カスタム投稿の場合はまた違う設定のようなので未テスト
BLOG