WordPressでカスタム投稿アーカイブ・タクソノミーページだけ記事の表示件数を変更したい

カスタム投稿アーカイブ・タクソノミーページだけ、記事の表示件数を変更したい。
WordPress管理画面の設定ページにある表示件数は変更したくない。(デフォルトの投稿タイプの表示件数は変更しない)
本記事ではこのような悩みを解決、実装方法について解説します。
functions.phpにコードを記述
<?php
//-----------------------------------------------------
// 【カスタム投稿アーカイブの表示件数を変更】
//-----------------------------------------------------
function change_posts_per_page($query)
{
/* 管理画面,メインクエリに干渉しないために必須 */
if (is_admin() || !$query->is_main_query()) {
return;
}
if ($query->is_post_type_archive('カスタム投稿タイプ名')) { // カスタム投稿アーカイブ
$query->set('posts_per_page', 18); // 表示件数
}
if ($query->is_tax('カスタム投稿タクソノミー名')) { // カスタム投稿タクソノミー
$query->set('posts_per_page', 18); // 表示件数
}
add_action('pre_get_posts', 'change_posts_per_page');
カスタム投稿アーカイブ・タクソノミーページだけ記事の表示件数を変えるコード例です。
上記コードをfunctions.phpに記述します。
【カスタム投稿タイプ】・【カスタム投稿タクソノミー名】と文字列が入ってる箇所に任意の表示件数を変更したいカスタム投稿名を入れます。
上記箇所のすぐ下に任意の表示件数を入れます。(18となってる箇所)
以上で実装完了です。
まとめ
応用で、カスタム投稿以外にも個別に変更ができます。
例えばカテゴリページの表示件数を変更したい場合は本記事で紹介したchange_posts_per_page関数内に以下を追記すればOKです。
if ($query->is_category()) { // カテゴリーページ
$query->set('posts_per_page', 18); // 表示件数
}
以上で解説を終わります。
目次