Go to top Go to bottom

投稿一覧ページで表示される記事の件数は、管理画面で一括して変更することができます。ところが、「全体的には10件表示するが、検索結果ページは20件表示したい」というような部分的な変更はできません。これを実現するには、メインループのクエリ条件をpre_get_postsアクションを用いて変更します。

まずは管理画面から変更する

アーカイブ系のページ、たとえば記事一覧を表示する投稿ページや、カテゴリーページなどにおいて、1ページに表示される記事の件数はデフォルトで10件に設定されています。これを変更するには管理画面の[設定]→[表示設定]を開き[1ページに表示する最大投稿数]を変更します。

1ページに表示する最大投稿数
1ページに表示する最大投稿数

この値を修正することで、WordPress全体として1ページに表示する最大投稿数を変更することができます。

1ページの最大投稿数を、特定のページで変更する

1ページに表示する投稿数は管理画面で一括変更できますが、たとえば「検索結果画面や日付アーカイブだけは件数を変えたい」という場合は、pre_get_postsアクションフックを利用して、クエリ条件を変更します。

function twpp_change_posts_per_page( $query ) {
  if ( is_admin() || ! $query->is_main_query() ) {
    return;
  }

  if ( $query->is_search() ) {
    $query->set( 'posts_per_page', 20 );
  }
}

add_action( 'pre_get_posts', 'twpp_change_posts_per_page' );

この処理をfunctions.phpに記載すると、検索結果画面だけは投稿の表示最大数が1ページ当たり20件表示されるようになります。$query->is_category()$query->is_tag()あるいは$query->is_date()などの条件分岐タグを使用することで、任意のページを指定することができます。