myposttypeというカスタム投稿タイプでだけ、アーカイブページでの表示記事数を3件にしたい時。
テーマのfunctions.phpに下記を追加します。
add_action( 'pre_get_posts', 'my_pre_get_posts' ); function my_pre_get_posts( $query ) { if ( $query->is_main_query() && ! is_admin() && ( is_post_type_archive( 'myposttype' ) ) ) { $query->set( 'posts_per_page', 3 ); } }
pre_get_postsフックで書き換えています。
is_main_query()は、メインのクエリ(つまり、サイドバーとかでget_postsとかしていたら、そこは除外する)だけに適用するための条件付けです。
参考にしました。
WordPress ループ&クエリーのモヤモヤを解消しよう!
3.3の新しい関数 is_main_query を使おう
is_main_query()を忘れた時に、まがりん登場でした。またお願いします!
@shinichiN is_main_query使えし。
— Hitoshi Omagariさん (@jim0912) 6月 7, 2012
コメント
コメント一覧 (1件)
[…] 特定のカスタム投稿タイプだけで、アーカイブページでの表示件数を変える | Shinichi Nishikawa's blog […]