WordPressではカテゴリやアーカイブページの表示数は管理画面の表示設定で一元管理しています。

これって少し不便に感じることがありますよね?

カテゴリやタグ、月別ページはまだ同じで良いかもしれませんが、カスタム投稿タイプによって表示数を変えたいということはよくあると思います。

今回はpre_get_postsアクションフックでカスタム投稿タイプアーカイブページの表示数を変える方法をご紹介いたします。

 

add_action( 'pre_get_posts', 'my_custom_query_vars' );
function my_custom_query_vars( $query ) {
	/* @var $query WP_Query */
	if ( !is_admin() && $query->is_main_query()) {
		if ( is_post_type_archive('カスタム投稿タイプのスラッグ') ) {
			$query->set( 'posts_per_page' , 10 );//表示したい数
		}
	}
	return $query;
}

ポイントは$query->is_main_queryでメインループのみに限定している点と、is_post_type_archive関数でカスタム投稿タイプの一覧ページのみに制限している点です。

これで他のページには影響を及ぼさずに記事の表示数を変更することが可能です。

ぜひお試しください。