【WordPress】記事数を取得して表示|検索結果、カテゴリー・タグアーカイブページなど

WordPressでサイトを作成していると、検索結果ページやカテゴリー・タグアーカイブページ内の記事数を表示したい場合があるかもしれません。

今回は、そのような際に使用できるソースコードの例となります。

検索結果ページでヒットした記事数を取得して表示する例

以下のソースコードは、検索結果ページ内で検索にヒットした記事数を出力する例となり、記事数を表示したい箇所に記述します。

<?php
// 検索結果でヒットした記事数を取得
$found_posts = $wp_query->found_posts;
echo '<p>検索キーワード「' . get_search_query() . '」の記事数は' . $found_posts . '件となります。</p>';
?>

例では、グローバル変数$wp_queryを使い、WP_Queryのプロパティfound_postsから、現在の検索結果ページ内の投稿数を取得しています。

WP_Queryのプロパティfound_postsは、現在のクエリに一致する投稿数を取得でき、検索結果ページ以外でも投稿数を取得できます。

また、get_search_query関数は、現在の検索クエリ文字列を取得できる関数となります。

カテゴリー・タグアーカイブページで記事数を取得して表示する例

以下のソースコードは、カテゴリー・タグアーカイブページ内で、get_queried_object()を使い、現在のアーカイブページ内の記事数を出力する例となり、記事数を表示したい箇所に記述します。

<?php
// カテゴリーまたはタグアーカイブページのオブジェクトを取得
$obj = get_queried_object();
// カテゴリーまたはタグ名を取得
$term_name = $obj->name;
// カテゴリーまたはタグアーカイブページ内の記事数を取得
$count = $obj->count;
echo '<p>' . $term_name . 'のアーカイブページ。記事数は' . $count . '件となります。</p>';
?>

例では、get_queried_object()のプロパティからカテゴリー、タグアーカイブページの記事数などを取得しています。

get_queried_object()については以下のリンク先を参考にしてみてください。

すべての記事数を取得して表示する例

以下のソースコードは、すべての記事数を取得して出力する例となり、記事数を表示したい箇所に記述します。

<?php
// 各投稿ステータスの投稿数をプロパティとして持つオブジェクトを取得
$count_posts = wp_count_posts();
// 投稿ステータスが「公開済」の投稿数を取得
$publish_posts = $count_posts->publish;
echo '<p>すべての記事数は' . $publish_posts . '件となります。</p>';
?>

wp_count_posts()は、各投稿ステータスの投稿数をプロパティとして持つオブジェクトを取得でき、例では、wp_count_posts()のプロパティpublishから投稿ステータスが「公開済」の投稿数を取得しています。

参考サイト、参考書籍

コメントまたはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。Twitterで返信する場合はコチラから。