WordPressで投稿数に応じて何か条件を加えたりすることがよくあって、今後も使いそうな予感がしています。
よく使うものはできるだけメモしておきたいです。というわけで、投稿数に関する情報を取得する方法についてまとめました。
前提を決めます
今回は下のようなループの場合を前提とします。コードはCodexのThe Loopページから引用したものです。
if ( have_posts() ) { while ( have_posts() ) { the_post(); // // Post Content here // } // end while } // end if
投稿数を全件取得する方法
投稿数を全件取得するには下のコードでOKです。
echo $wp_query->found_posts;
例えばループの条件に合った投稿が全部で10件なら、「10」が取得できます。
1ページに表示する投稿数を取得する方法
1ページあたりに表示する投稿数は、WordPressの管理画面から「設定」→「表示設定」で設定した「1ページに表示する最大投稿数」の値に基づいています。
この数字を取得するには以下のコードでOKです。
echo get_option('posts_per_page');
また、下のコードでも1ページあたりに表示する投稿数の取得はできます。
echo $wp_query->query_vars['posts_per_page'];
どちらのコードでも基本的に取得できる件数は同じですが、pre_get_postsなどで表示する投稿数を変更している場合は「$wp_query->query_vars[‘posts_per_page’]」で取得できる値が違うことがあります。
例えば・・・
- カテゴリーのアーカイブページでは1ページに5件
- 他のアーカイブページでは1ページに9件
- 1ページ目は3件、2ページ目以降は5件
などです。
意図的に変えているなら問題ないと思いますが「このページ、ほんとは9件表示されるはずなのに、5件しか表示されないんだけど」という場合は、表示するページによって投稿数を変えているかもしれませんので、チェックおすすめです。
ページごとに表示する投稿数を取得する方法
例えば全部で10件の投稿があったとして「1ページに表示する投稿数」は9件だとします。すると、
- 10件中9件は1ページ目
- 残りの1件は2ページ目
となるはずです。この「ページごとに表示する件数」を取得するには以下のコードでOKです。
echo $wp_query->post_count;
1ページ目は「9」、2ページ目は「1」が取得できます。
まとめ
私がよく使っている投稿数に関する情報を取得する方法について書きました。これらの情報を使って、
- 「全○○件中○件~○件」という表示する
- 表示している投稿数が設定した投稿数より下回る場合は、他の投稿やページを表示する
などもできますね。
今後も「これよく使うわ~」と思ったらページに追加していく予定です。
このページを共有する