WordPressでカテゴリーページのみ全件表示する方法

2018.02.23 2018.03.26WordPress
WordPressでカテゴリーページのみ全件表示する方法

WordPressでは、ダッシュボードの「表示設定」→「1ページに表示する最大投稿数」で1ページに表示する投稿数を設定できます。

今回はクライアントワークでカスタム投稿タイプのアーカイブページは表示投稿数を指定してページナビを設置しつつ、投稿のカテゴリーページではそのカテゴリーに属するページを全件表示するという必要があったため、その方法をメモします。

カテゴリーページのみ全件表示するソース

全件表示したいカテゴリーページのテンプレートファイルにて、下記のようにループのクエリを設定します。

<?php
$paged = (int) get_query_var('paged');
$args = array(
'posts_per_page' => -1, //表示件数
'paged' => $paged, //ページ番号
'post_type' => 'post', //投稿の種類
'post_status' => 'publish', //投稿のステータス(公開状態)
'category_name' => 'seasonal' //カテゴリースラッグ
);
$the_query = new WP_Query($args);
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post();
?>

posts_per_pageで個別に表示件数を指定できる

posts_per_pageというパラメータで、そのページに表示する投稿件数を個別に指定できます。WordPressダッシュボードで表示件数を指定していても、posts_per_pageで指定した内容が反映されます。

全件表示するためには、ここの値を「-1」とします。

例えばこの値を「10」とすれば10件表示、「5」とすれば5件表示されるようになります。

category_nameというパラメータに指定している値は、表示したいカテゴリーのスラッグを入力してください。

pagedというパラメータは、ページ送りに必要な設定です。これがないとループにクエリを設定した場合にページナビが正常に動作しません。今回の場合は1ページに全件表示するためあまり関係はありませんが、書く習慣にしておくといいでしょう。

まとめ

表示件数を指定する(=ループのクエリを設定する)場合、注意すべきはページ送りの部分です。

pagedというパラメータを指定していないと、1ページ目は正常に表示されていても、2ページ目以降が404エラーになったりします。

ですので、ループクエリを指定してページ送りがおかしくなった場合は、この辺りから疑ってみるといいかと思います。

参考ページ
WordPressで全てのカテゴリーの全記事を一覧表示させるページを作る(福岡のホームページ制作・SEO対策ならアイドットデザイン)

WordPressテーマ『HIGHLAND』公開しました

WordPressテーマ『HIGHLAND』を公開しました

このブログで紹介しているカスタマイズを、これでもかと盛り込んだ高性能なテーマになっております。商用・非商用問わず無料、是非ご利用ください。

ブログ集客メール講座登録フォーム

「売上が不安定で、月末になるといつも不安……」
「営業が苦手で新規開拓がうまくいかない……」
「Webが苦手でブログをうまく活用できない……」

個人起業家・フリーランスのあなた、こんなお悩みはありませんか?

実は僕も、独立して最初に直面したのが「集客」の壁でした。

しかし今は、1年の大半をベトナムで過ごしながら、フリーランスのWebディベロッパーとして生計を立てています。

僕がなぜ、時間・場所・人間関係に縛られずに暮らせるようになったのか?

その答えは「ブログ」にあります。

今なら、「初心者の人が成果を上げるため」のブログ集客ノウハウを、メール講座限定でお伝えします。

興味のある人は、今すぐ以下から登録【無料】を!

ブログ初心者が生き残るためのブログ集客メール講座

柴田竹思

柴田竹思

日本&ベトナム二拠点生活中のWeb系フリーランス。最近は育児6:仕事4のバランスで生活してます。これでもかってくらい奥さんの尻に敷かれてる座布団系男子です。

プロフィールはこちら