WordPressで投稿した記事数を表示させたい場合のメモ。
方法はいくつかあるので、使いやすいものや表示させるページにあったものを選んでみてください。
wp_count_posts() で取得&表示
wp_count_posts() の引数に投稿タイプを指定することで、「post」以外の投稿数を取得できます。
<?php
$post_count = wp_count_posts();
$posts_num = $post_count->publish;
echo '現在投稿記事は'.$posts_num.'件あります';
?>
// 固定ページの投稿数を取得したい
$page_count = wp_count_posts('page');
$pages_num = $page_count->publish;
// カスタム投稿の投稿数を取得したい
$custom_post_count = wp_count_posts('custom_post_name');
$custom_post_num = $custom_post_count->publish;
投稿ステータスを指定する
wp_count_posts では投稿ステータス別に投稿数を返すので「どの投稿ステータスか」というところは指定しなければなりません。
$posts_num = $count_posts->publish;
表示させたい時は大体が公開されている記事だと思いますが、指定できる投稿ステータスは以下のようなものがあります。
指定するプロパティ | 投稿ステータス |
---|---|
publish | 公開 |
future | 予約投稿 |
draft | 下書き |
pending | レビュー待ち状態 |
private | 非公開 |
trash | ごみ箱 |
auto-draft | 自動保存の下書き |
inherit | 継承記事(リビジョンなど) |
<?php
$page_count = wp_count_posts('page');
$pages_publish = $page_count->publish;
$pages_draft = $page_count->draft;
echo '公開固定ページは'.$pages_publish.'件あります';
echo '下書きは'.$pages_draft.'件あります';
?>
複数の投稿タイプを合わせた数を取得・表示
計算式を追加することで、複数の投稿タイプを合わせた数字を表示させることができます。
<?php
// 「投稿」の公開数を取得
$post_count = wp_count_posts();
$posts_num = $count_posts->publish;
// 「カスタム投稿」の公開数を取得
$custom_post_count = wp_count_posts('custom_post_name');
$custom_post_num = $custom_post_count->publish;
// 2つの投稿タイプの記事数を足す
$post_all = $posts_num + $custom_post_num;
echo 'このサイトの記事は'.$post_all.'件あります';
?>
投稿数によって表示内容を変える
<?php
$post_count = wp_count_posts();
$posts_num = $post_count->publish;
if ($posts_num >= 10) {
echo 'このサイトには10件以上の記事があります';
} else {
echo 'まだこのサイトには記事が10件もありません';
}
?>
$wp_query から取得&表示
$wp_query
の中にも投稿数の値が入っているので、そこから取得することもできます。
投稿されている全てを表示したい場合は found_posts
というプロパティをつけます。
// 投稿されている全ての数字を表示
<?php echo $wp_query->found_posts; ?>
「表示されているページにある投稿数」を取得する場合は post_count
というプロパティをつけます。
// 現在表示しているページで取得している投稿数
<?php echo $wp_query->post_count; ?>