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

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 件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です