投稿数を表示したいときの取得方法【WordPress】

更新2022/01/21

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; ?>

カテゴリー : WordPress

タグ :

TOPへ