functions.phpに下記を追加します。 さっきの「ギャラリー」だけ16件にする場合の例です。
[sourcecode language=”php”]
add_action(‘pre_get_posts’, ‘my_pre_get_posts’);
function my_pre_get_posts($query) {
if (!is_admin() && $query->is_main_query() && is_post_type_archive(‘gallery’)) {
$query->set(‘posts_per_page’, 16);
}
}
[/sourcecode]
条件1:フロントページでは通常の投稿とカスタム投稿タイプ(news)を表示
条件2:月別アーカイブではその月の全投稿を表示
条件3:カテゴリーアーカイブでは1ページあたり10件ずつ表示
[sourcecode language=”php”]
add_action(‘pre_get_posts’, ‘my_pre_get_posts’);
function my_pre_get_posts($query) {
if (is_admin() && !$query->is_main_query())
return;
if ($query->is_front_page()) { //フロントページ
$query->set(‘post_type’, array(‘post’, ‘news’)); //投稿とカスタム投稿タイプ(news)を表示
return;
}
if ($query->is_month()) { //月別アーカイブ
$query->set(‘posts_per_page’, -1); //全件表示
return;
}
if ($query->is_category()) { //カテゴリーアーカイブ
$query->set(‘posts_per_page’, 10); //10件ずつ表示
return;
}
}
[/sourcecode]