特定のカスタム投稿の表示数をフックで変更する方法

  • ブックマーク
  • -
    コピー
WordPressの一般設定にある“1ページに表示する最大投稿数”を指定するとメインループの投稿表示数を変更することができます。しかしカスタムポストタイプなどを作成するとそれぞれの投稿タイプでテンプレートのデザインが違い、カラム数に応じて出したい記事数も変わってきます。 そんな時は条件を指定してpre_get_postにアクションフックをかけるとよいでしょう。実際に動くコードは下記の通りです。

function column_per_page( $query ) {
    if ( ! is_admin() && $query->is_main_query() && is_post_type_archive( 'column' ) ) {
        $query->set( 'posts_per_page', '8' );
    }
}

add_action( 'pre_get_posts', 'column_per_page' );

前述のサンプルコードではcolumnという投稿タイプを作成した時にcolumnというページではpost_per_page (1ページあたりの最大表示数) を8記事にするという記述です。 ページネーションの動きなどでメインループの回数を上書きたい場合はfunctions.phpに前述のサンプルコードを記載し一括で管理するとよいでしょう。
サンプルコードの参考記事
  • ブックマーク
  • -
    コピー

この記事を書いた人

Susumu Seino

1988年 東京都足立区生まれ。瀬戸内海の小島と東京に拠点を持ち、2020年からは夫婦でアドレスホッピングを計画しているデジタルノマドな日本人。デジタルパブリッシング代理店のアニューマの創業者です。