Contact Info

  • aniuma OÜ Harju maakond, Tallinn, Lasnamäe linnaosa, Sepapaja tn 6, 15551

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

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に前述のサンプルコードを記載し一括で管理するとよいでしょう。
https://stackoverflow.com/questions/18968916/unlimited-posts-per-page-for-a-custom-post-type-only
サンプルコードの参考記事

コメントを残す

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