wp_count_posts

説明

object wp_count_posts( [ string $type = '' [ , string $perm = '' ] ] )
投稿数を取得する。

パラメータ

  • $type
    投稿タイプを指定(省略時は'post')
  • $perm
    'readable'または''を指定(省略時は'')

返り値

投稿ステータス別の投稿数を格納したオブジェクトを返す。オブジェクトのプロパティは次に示す通り投稿ステータス名であり、それぞれに投稿数が格納されている。
プロパティ内容
publish公開
future予約投稿
draft下書き
pendingレビュー待ち
private非公開
trashごみ箱
auto-draft自動下書き
inherit継承記事(リビジョンなど)

注意

パラメータ$permで'readable'を指定し、ユーザがログイン中( is_user_logged_in関数で調べる)でかつ他人のステータスが'private'な記事を閲覧できない( current_user_can関数で調べる)場合、検索対象はステータスが'private'以外か、そのユーザが投稿したステータスが'private'の投稿になる。

使用例

  • 投稿記事の投稿数を取得する。
    <?php $counts = wp_count_posts(); ?>
  • カスタム投稿タイプ'news'で'readable'して投稿数を取得する。
    <?php $counts = wp_count_posts( 'news', 'readable' ); ?>

フィルター

投稿数を返す直前に'wp_count_posts'フィルターを呼び出す(3.7.0以降)。$countsには投稿数の連想配列が、$type$permのそれぞれにはパラメータで受け取った値が格納される。
return apply_filters( 'wp_count_posts', $counts, $type, $perm );

アクション

実行するアクションはありません。

ソースファイル

/wp-includes/post.php

最終更新 : 2013年10月31日 13:55



お勧め

リビジョンの仕組みを勘違いしてた(2018年9月17日 更新)

過去の投稿情報を記録するリビジョン機能をカスタム投稿タイプで利用しようと思い作りこみしていたが、思惑通りの動きにならなかった。リビジョン機能は投稿情報の更新前の内容を記録するものと勝手に思い込んでいたのだが、どうやらそれは間違いだった。

Emojin:プラグイン作ってみました(2015年3月21日 更新)

ちょっと前のTLでiOSの絵文字を含んだ投稿を保存すると、絵文字以降の文章がすべて消えた状態で保存されるといったツイートを見かけた。少し検索してみると、MySQLのデータベースの文字セットが「utf8」の場合、iOSの絵文字のような4バイトの文字を正常に保存できず、それ以降の文章も保存されないというものらしい。対処方法としてデータベースの文字セットを「utf8mb4」に変更するのが有効らしいのだが、他に回避策がないか考えてみた。

MOファイルを作ってみた(2018年7月25日 更新)

テーマやプラグインで使用するMOファイルはWindows環境では「Poedit」アプリを使うことが多かったが、最近では「GlotPress」のようなプラグインも増えてきており、選択肢は広がっている。定期的に開発環境を見直す過程で「Poedit」から「GlotPress」に切り替えようと思ったのだが、微妙にしっくりこなかった。

全投稿を取得するのはnopaging=1でいい(2011年8月31日 更新)

query_posts関数(またはWP_Queryクラス)を使う場合、取得する件数の指定を省略すると管理者ページの「表示設定」-「1ページに表示する最大件数」の指定値分だけの投稿情報を取得する。それでは条件にマッチするすべての投稿情報を取得するには?

Login rebuilderに「XML-RPC設定」を追加しました(2018年5月27日 更新)

公式サイトで公開しているプラグイン「Login rebuilder」をバージョンアップし、XML-RPCリクエストの管理機能を追加しました。Login rebuilderの主たる機能は、ログインページをサイト別にユニークなURLに変更し、ログインページへの不正アクセスを回避することです。WordPressのXML-RPCリクエストはピンバックや外部ツールやサイトなどとの連携に利用されていますが、今回追加した機能ではXML-RPCリクエストの処理に対していくつかの制限できるようにしています。