用語集を作った際に、トップページに全ての登録件数を表示したいと要望があった際に使った方法をご紹介。
仕様
<?php wp_count_posts( $type, $perm ); ?>
パラメータ | 初期値 | 説明 |
$type | post | 対象の投稿タイプ |
$perm | (空) | 現在のユーザーが読める非公開の投稿を含めるには ‘readable’ をセット |
投稿ステータスについて
詳しい投稿ステータスの種類はこちらをご覧ください。
日本語 | 英語 | 説明 |
公開済 | publish | 誰でも見ることができる |
予約済 | future | 未来の日付に公開を設定されている |
下書き | draft | 特定のユーザーしか閲覧できない未完成の投稿 |
非公開 | private | 権限を持つユーザーしか見られない投稿 |
使い方
公開済みの全記事数をカウント
<?php
$count_posts = wp_count_posts();
$published_posts = $count_posts->publish;
?>
//表示例
<?php echo $published_posts; ?>件の単語が登録されています。
下書きの記事数をカウント
<?php
$count_posts = wp_count_posts();
$draft_posts = $count_posts->draft;
?>
//表示例
<?php echo $published_posts; ?>件の単語が公開準備中です。
固定ページをカウント
<?php
$count_pages = wp_count_posts( 'page' );
$published_pages = $count_pages->publish;
?>
//表示例
<?php echo $published_pages; ?>件です。
カスタム投稿をカウント
2行目の'info'
は、カスタム投稿のスラッグ名に置き換えてください。
<?php
$count_customposts = wp_count_posts( 'info' );
$published_customposts = $count_customposts->publish;
?>
//表示例
<?php echo $published_customposts; ?>件です。
複数のカスタム投稿の合計をカウント
2,3行目の、'info'
と'news'
は、カスタム投稿のスラッグ名に置き換えてください。
<?php
$count_customposts1 = wp_count_posts( 'info' );
$count_customposts2 = wp_count_posts( 'news' );
$info = $count_customposts1->publish;
$news = $count_customposts2->publish;
$all_posts = $info + $news;
?>
//表示例
カスタム投稿の合計は<?php echo $all_posts; ?>件です。
指定件数以上の場合に表示を変える
4・6行目の数字を入れかえて使用します。
<?php
$count_posts = wp_count_posts();
$published_posts = $count_posts->publish;
if (1000 < $published_posts):
?>
<p>999+件以上登録されています。</p>
<?php else: ?>
<p><?php echo $published_posts; ?>件の単語が登録されています。</p>
<?php endif; ?>