WordPressでアーカイブページに全記事表示する方法

実質無限スクロール!WordPressのアーカイブページで全記事表示する方法を解説します。

「ブログの記事数が少ないので、アーカイブページに全記事表示させたいなぁ…」
「ページャーがダサいなぁ。全件表示できないかな?」
そんな風に思ったこと、ありませんか?

全件表示は可能です!この記事では、アーカイブページで全記事表示する方法を解説します。

目次

設定方法

WordPressには「設定」 ⇒「表示設定」に「1ページに表示する最大投稿数」のオプションが存在します。ここで記事一覧の表示件数が決まります。

設定方法は2種類ありますが、いずれもこの表示設定を変更します。

記事数以上に表示数を設定する方法

先述の通り、表示件数を決めるオプションはあらかじめWordPressに備わっています。
つまり、この設定を記事数以上に設定しておくだけです。

特段難しい操作は必要ありませんし、安全に変更することができます。

ただし、これでは記事数が増えると定期的に設定を更新する必要があり、少し手間がかかります。

表示数を-1に設定する方法

「1ページに表示する最大投稿数」に-1を設定すると、全記事表示をすることができます。
たったこれだけです。

「1ページに表示する最大投稿数」を-1に設定した例
「1ページに表示する最大投稿数」を-1に設定した例

しかし、通常の設定画面で-1を設定するとエラーになります。

-1を設定してエラーになる例
-1を設定してエラーになる例

ではどうやって設定するかというと、WordPressの「すべての設定」を使用します。
以下のURLにアクセスしてみてください。これは、WordPressのデータの一覧ページのURLです。

【サイトのURL】/wp-admin/options.php

ページ内で「posts_per_page」オプションを探します。
Windowsの場合は、Ctrl+Fで簡単に検索できます。
「posts_per_page」の値を【-1】に変更して、ページ最下部にある「変更を保存」ボタンを押してください。

posts_per_page設定
posts_per_page設定

これで完了です。

-1が反映されない場合

テーマによっては、最大投稿数(表示記事数)をテーマ側で制御しているものもあるようです。
その場合、「1ページに表示する最大投稿数」に代わるオプションが別途用意されていないか確認してみましょう。

特定ページにだけ反映したい

「posts_per_page」を-1にする方法は、ブログのいたるところに反映されます。
しかし、『検索結果ページだけ』のような特定ページのみに反映したいこともあるでしょう。

そういった場合は、子テーマのfunctions.phpに以下を追記することで対応可能です。

add_action( 'pre_get_posts', function( $query ){
  if ( is_admin() || ! $query->is_main_query() ) {
    return;
  }
  if ( is_search() ) {
    $query->set( 'posts_per_page', -1 );
    return;
  }
});

上記は検索結果ページだけ、-1件を設定(= 全件表示)するカスタマイズ例です。

「is_search」部分を変更することで、特定のページへ反映することができます。
例えば、カテゴリーのアーカイブページを対象にしたい場合は「is_category」にします。

シェア大歓迎!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次