カスタム投稿やカスタムタクソノミごとにアーカイブ一覧ページの記事表示件数を指定する
課題
投稿とカスタム投稿が共存している、さらにはカスタムタクソノミも共存していて、それぞれのアーカイブ一覧ページのフォーマットが異なるような場合では、アーカイブ一覧ページ表示件数を変更して見た目を適正にしたいことがあります。
対策
以下のコードをfunctions.phpに記述すれば解決できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
function change_posts_per_page($query) { if ( !is_admin() && $query->is_main_query()) { // 管理画面,メインクエリに干渉しないために必須 if ( is_post_type_archive('xxxx') ) { //※1 カスタム投稿タイプ「xxxx」を指定 $query->set( 'posts_per_page', '4' ); //表示件数を指定 } else if ( is_tax('yyyy') ) { //※2 カスタムタクソノミ「yyyy」を指定 $query->set( 'posts_per_page', '9' ); //表示件数を指定 } } return $query; } add_action( 'pre_get_posts', 'change_posts_per_page' ); |
解説
- ※1
「xxxx」というカスタム投稿のアーカイブページの表示件数を指定してます。 - ※2
「yyyy」というカスタムタクソノミのアーカイブページの表示件数を指定してます。 - 指定以外の投稿タイプ(例:投稿)やタクソノミ(例:カテゴリー)の表示件数は、「設定」→「表示設定」→「1ページに表示する最大投稿数」が適用されます。
弊社サイトご案内
弊社ではデザイン会社様やウェブサイト制作会社様との提携・協業を随時お願いしております。