投稿や固定ページなどの投稿数を知りたい

カスタマイズ案件でWordPressのダッシュボードに投稿記事の公開済み・下書きの件数を表示してほしいという要望に対応した時のメモ。投稿や固定ページ、カスタム投稿タイプでも同様に件数を取得できるwp_count_posts関数を使用します。基本は下記通り。

wp_count_posts( $type, $perm );

引数は2つでどちらも省略可能。

  • 第一引数は投稿タイプを文字列で指定します。デフォルトは'post'です。
  • 第二引数は非公開の投稿を含めるかどうかを指定します。含める場合は、'readable'を指定します。デフォルトはempty(空)。

件数を出力する

この関数をそのままechoしてもエラーが出てしまいます。公開済み(publish)か下書き(draft)をプロパティで指定してあげます。

echo wp_count_posts()->public // 公開済み;
echo wp_count_posts()->draft; // 下書き

これを当初の目的であるダッシュボードのウィジェットに表示したコードがこちら。

function add_dashboard_widgets() {
  wp_add_dashboard_widget(
    'ex_post_dashboard_widget',  // ウィジェットのスラッグ
    '記事の件数',                 // ウィジェットのタイトル
    'ex_post_dashboard_widget'   // ウィジェットの内容を出力するコールバック関数
  );
}
function ex_post_dashboard_widget() {
  echo '投稿件数(公開)' . wp_count_posts()->publish . '件<br>';
  echo '投稿件数(下書き)' . wp_count_posts()->draft . '件<br>';
  echo '固定ページ件数(公開)' . wp_count_posts( 'page' )->publish . '件<br>';
  echo '固定ページ件数(下書き)' . wp_count_posts( 'page' )->draft . '件';
}
add_action( 'wp_dashboard_setup', 'add_dashboard_widgets' );

表示↓↓↓

ダッシュボードに投稿件数を表示
できた!\(^o^)/

参考サイト

Developer Resources: wp_count_posts()
https://developer.wordpress.org/reference/functions/wp_count_posts/