WordPressのカテゴリを取得・出力する関数は色々ありますが、含まれる記事数を取得して表示させる関数は、あまり多くなくググっても関連の内容は出てきません。
この記事では、そんな記事数を取得して表示させるスニペットについて、
- 投稿や固定ページ数を取得して表示させるスニペット
- 特定のカテゴリの記事内を表示させるスニペット
- 演算子を絡めていろんな計算をするスニペット
の内容です。
関数に演算子を足した構文で簡単にできるので、解説した内容をいじって活用してみてください。
記事の”数”を計算して出力させるスニペットです。
目次
対象の全ページを取得するスニペット
対象全ページの記事数を取得して表示させるには、主に wp_count_posts()
の関数を使います。
ここでは、主に以下5つについて解説していきます。
- 投稿の記事数
- 固定ページの記事数
- 記事と固定ページの合計記事数
- カスタム投稿タイプの記事数
- 投稿とカスタム投稿タイプの合計記事数
それではご覧ください。
投稿の記事数を取得して表示
サイト内の投稿の記事数をカウントして表示させたい場合、以下のコードを表示させたい場所にコピペします。
<?php
$count_post = wp_count_posts();
$count_posts = $count_post->publish;
?>
<?php echo $count_posts; //投稿ページ件数表示の関数 ?>
上記のコードは、公開されている記事のpublish
のみ取得するスニペットです。それ以外のプロパティを指定する場合には、以下を記述することで件数に含めることができます。
プロパティ | 内容 |
---|---|
publish | 公開 |
future | 予約投稿 |
draft | 下書き |
pending | レビュー待ち |
private | 非公開 |
trash | ごみ箱 |
auto-draft | 自動下書き |
inherit | 継承記事(リビジョンなど) |
固定ページの記事数を取得して表示
サイト内の固定ページの数をカウントして表示させたい場合、以下のコードを表示させたい場所にコピペします。
<?php
$count_page = wp_count_posts('page');
$count_pages = $count_page->publish;
?>
<?php echo $count_pages; //固定ページ件数表示の関数 ?>
固定ページも上記の投稿ページと同様、下書きも含めたい場合は publish
をdraft
に変更すればOKです。
投稿と固定ページの合計数を取得して表示
投稿ページと固定ページの合計ページ数を表示させたい場合、以下のコードを表示させたい場所にコピペします。
<?php
$count_posts = wp_count_posts('post');
$count_pages = wp_count_posts('page');
$posts = $count_posts->publish;
$pages = $count_pages->publish;
$count_all = $posts + $pages;
?>
<?php echo $count_all; //投稿+固定の合計表示 ?>
簡単ですね!単に、上記で紹介してきた投稿と固定のスニペットをガッちゃんこして演算子でまとめてるだけです。
カスタム投稿の記事数を取得して表示
カスタム投稿の記事内を表示させたい場合、以下のコードを表示させたい場所にコピペします。
<?php
$count_custom_post = wp_count_posts('カスタム投稿名');
$count_custom_posts = $count_custom_post->publish;
?>
<?php echo $count_custom_posts; //カスタム投稿 ?>
通常の投稿とカスタム投稿の記事数を取得して表示
通常の投稿記事と、カスタム投稿の記事内を合計して表示させたい場合、以下のコードを表示させたい場所にコピペします。
<?php
$count_posts = wp_count_posts('post');
$count_custom_post = wp_count_posts('カスタム投稿名');
$posts = $count_posts->publish;
$count_custom_posts = $count_custom_post->publish;
$count_all = $posts + count_custom_posts;
?>
<?php echo $count_all; //投稿+カスタム投稿の合計数表示 ?>です。
特定のカテゴリを取得するスニペット
get_category
の関数を使ってカテゴリ数を取得して、表示させます。
主に以下3つのパターンについて解説していきます。
- 特定のカテゴリ1個に含まれる記事数
- 複数のカテゴリの合計記事数
- 全記事から特定カテゴリの記事数を引いた合計数
演算子も使うといろんなパターンで記事数を表示できます。それでは見ていきましょう。
特定のカテゴリ1個に含まれる記事数を取得して表示
カテゴリを1個指定して、記事内を取得して表示させる場合、以下のコードを表示させたい場所にコピペします。
カテゴリIDは、数字のIDを入力するようにしましょう。
<?php
$thisCat1 = get_category(カテゴリID)->count;
//表示
echo number_format($thisCat1); ?>
複数のカテゴリを指定してそれらに含まれる記事数を取得して表示
複数のカテゴリを指定して、記事内を出力する場合です。以下のコードは3つのカテゴリをした場合のスニペットです。
<?php
$thisCat1 = get_category(カテゴリIDその1)->count;
$thisCat2 = get_category(カテゴリIDその2)->count;
$thisCat3 = get_category(カテゴリIDその3)->count;
$exclude_posts = $thisCat1 + $thisCat2 + $thisCat3;
//表示
echo number_format($exclude_posts); ?>
カテゴリの記事数を+の演算子でつなげて出力する仕組みです。
全記事から特定カテゴリの記事数を引いて表示
やや強引な構文ですが、演算子を使って、全記事から特定カテゴリに含まれる記事を引いて表示させる場合に使うスニペットです。
<?php
//(1)投稿数に含めないカテゴリの数値を取得
$thisCat1 = get_category(カテゴリID)->count;
$thisCat2 = get_category(カテゴリID)->count;
$thisCat3 = get_category(カテゴリID)->count;
$exclude_posts = $thisCat1 + $thisCat2 + $thisCat3;
//(2)全投稿数を取得
$published_posts = wp_count_posts()->publish;
//(2)-(1)を取得
$published_posts = $published_posts - $exclude_posts;
//表示
echo number_format($published_posts); ?>
(1)で特定の記事数をカウントして合計し、(2)で全記事数を取得して、最後に -(マイナス)の演算子で計算させる関数です。
ややマニアックなスニペットですね・・。
応用させるといろんな計算ができる便利なスニペットです。