- 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細)
テンプレートタグ/wp count posts
目次
説明
WordPress 2.5 で新規導入されたこの関数は、指定した投稿タイプの各投稿ステータスの投稿数をプロパティとして持つオブジェクトを返します。また第 2 パラメータを入れて wp_count_posts()
を使うと、非公開(プライベート)の投稿数も含めることができます。デフォルトの場合や、ユーザーがログインしていなかったりゲストユーザーだったりした場合は、非公開の投稿数は含まれません。
この関数は投稿ステータスをプロパティとするオブジェクトを返すので、もし非公開の投稿数が必要なら PHP 関数 isset()
を使ってプロパティの有無をチェックしましょう。すべての投稿ステータスがオブジェクトに含まれるのではないからです。
使い方
<?php wp_count_posts( $type, $perm ); ?>
パラメータ
- $type
- (文字列) (オプション) カウント対象の投稿タイプ。
- 初期値: 'post'(ふつうの「投稿」)
- $perm
- (文字列) (オプション) 現在のユーザーが読める非公開の投稿を含めるには 'readable' をセット。
- 初期値: 空の文字列
戻り値
- (オブジェクト)
- 各投稿ステータスの投稿数をプロパティとして持つオブジェクト。指定した投稿タイプが存在しなければプロパティを何も持たないオブジェクトを返す。
用例
初期設定での使用
デフォルトでは公開された投稿の数を返します。オブジェクトを返すので、出力をデバッグするには var_dump() が使えます。
<?php $count_posts = wp_count_posts(); ?>
公開済みの投稿数を取得
投稿ステータスが「公開済」の投稿数を取得するには、wp_count_posts()
関数を呼び出してから 'publish' プロパティをアクセスします。
<?php $count_posts = wp_count_posts(); $published_posts = $count_posts->publish; ?>
もし PHP5 のみで動作すればよく、ひとつのステータスだけが欲しいなら、次のような省略表記が使えます。ただしこれは PHP4 では動作しないので、後方互換性を維持したければ上記のコードを使わなければなりません。
<?php $published_posts = wp_count_posts()->publish; ?>
下書きを数える
「下書き」の数も「公開済」と同様に取得できます。
<?php $count_posts = wp_count_posts(); $draft_posts = $count_posts->draft; ?>
固定ページを数える
固定ページのステータスについて数えるにはふつうの投稿と同じ方法を使いますが、第 1 パラメータを使用します。
<?php $count_pages = wp_count_posts( 'page' ); ?>
その他の使い方
wp_count_posts()
は任意の投稿タイプの投稿ステータスを数えるのに使うことができます。これには添付ファイルや、プラグインまたは WordPress コアの一部として将来追加される任意の投稿タイプも含まれます。
ソースファイル
wp_count_posts() は wp-includes/post.php
にあります。
変更履歴
- 2.5 : 新規テンプレートタグ
関連項目
カウントタグ: wp_count_posts(), wp_count_terms() /en, wp_count_comments() /en, count_users() /en
投稿タグ:
body_class(),
next_image_link(),
next_post_link(),
next_posts_link(),
post_class(),
post_password_required(),
posts_nav_link(),
previous_image_link(),
previous_post_link(),
previous_posts_link(),
single_post_title(),
sticky_class(),
the_category(),
the_category_rss(),
the_content(),
the_content_rss(),
the_excerpt(),
the_excerpt_rss(),
the_ID(),
the_meta(),
the_shortlink(),
the_tags(),
the_title(),
the_title_attribute(),
the_title_rss(),
wp_link_pages(),
最新英語版: WordPress Codex » Template Tags/wp_count_posts (最新版との差分)