トップページでは全記事数、カテゴリ ページでは そのカテゴリの記事数、タグ アーカイブ ページでは そのタグが付いた記事数。記事数を取得したい場面は いくつか考えられます。それぞれについて最もシンプルな方法です。
「wordpress 記事数 取得」の検索結果が凄い。コピペ記事がコピペ元より余裕で上位に表示される。コピペ元もコピペだったりする。いや、コピペはどうでもいい。そもそもオリジナルを争うほどのネタじゃない。その方法が いきなりデータベースにクエリを投げていても大半の人々は関心がない。負の連鎖の完成だ。本稿は、筆者のように(もう少しスマートな方法はないものか…)と感じてしまう方々に向けた記事です。
トップページで全記事数を取得する
もう少し詳しくいうと、メイン クエリの記事数を取得する方法です。home.php などで使用できます。
global $wp_query; echo '記事数は ' . $wp_query->found_posts . ' 件です。';
$wp_query はメイン クエリが保存されているグローバル変数です。メイン クエリの全記事数は found_posts プロパティに格納されているので、取得する際に改めてデータベースにクエリを投げる必要はありません。
多くの場合、この方法が最もシンプルに意図した結果を得られると思います。
$wp_query については、詳細を別記事にしていますので よろしければご参照ください。
カテゴリ ページで そのカテゴリ内の記事数を取得する
$term = get_queried_object(); echo 'このカテゴリの記事数は ' . $term->count . ' 件です。';
タグ ページで そのタグが付いている記事数を取得する
$term = get_queried_object(); echo 'このタグは ' . $term->count . ' 件の記事に付いています。';
同じコードがカテゴリ ページ(category.php)とタグ ページ(tag.php)、両方で使えます。
get_queried_object() 関数については以下のページをご参考にどうぞ。
- WordPress : get_queried_object()の返り値のまとめ | notnil creation weblog
- 関数リファレンス/get queried object – WordPress Codex 日本語版
- Function Reference/get queried object « WordPress Codex
複雑な条件に合致する記事数を取得する
global $wpdb; $numposts = $wpdb->get_var("SELECT count(*) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'post'"); echo 'クエリに合致するのは ' . $numposts . ' 件です。';
WHERE 区を変更すれば、どんなに複雑な条件でも記事数を取得できます。上記のコードでは post_status が publish で、かつ post_type が post である記事の数が取得できます。ないでしょう。この方法を使うシチュエーションを思い付かない。単に筆者のクリエイティブが足りないからかも知れない。でも ないです。
記事にしてみたものの、おそらく筆者には負の連鎖を断ち切る力はありません。届いた人にだけ役立てばいい。それで いいんだ。
Pingback: [ワードプレス]メニューカテゴリに投稿数を表示 | アイフルホーム太陽光発電付き一戸建てに住う歩の備忘録
Pingback: 【WordPress】機能と操作:メディア | さとういちろうのへや
Pingback: 記事数を取得する方法 - ネットアンサー備忘録|ネットアンサー備忘録
Pingback: WPのカスタム投稿タイプの件数をトップページで表示する方法 – Memorandums