特定のカスタム投稿タイプだけで、アーカイブページでの表示件数を変える

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()を忘れた時に、まがりん登場でした。またお願いします!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!

著者について

コメント

コメント一覧 (1件)

コメントする

目次
閉じる