[WordPress] WP_Queryで投稿取得後に全件数を求める

公開
更新日

スポンサーリンク

WP_Query()で投稿取得後、取得件数を知るにはpost_count、全件数を知るにはfound_postsを使います。

found_postsは、例えば以下のように、取得件数を指定してポストを取得した時に、取得数は制限しているものの、その条件にマッチする記事が全部で何件あるか知りたい場合に使います。

$args = array(
  "meta_key" => "foo",
  "meta_value" => "bar",
  "posts_per_page" => 10,//取得数は10に制限
);
$query = new WP_Query($args);
$get_num = $query->post_count;//取得した数
$all_num = $query->found_posts;//全件数

表示は10件に限っておきますが、検索結果全体では何件あったかを知りたい場合や、ページャーを作成したい場合などが必要となるケースでしょうか。MySQLならsql_calc_found_rowsを使うケースです。

$query = new WP_Query($args);
$get_num = $query->post_count;
$all_num = $query->found_posts;
echo "全" . $all_num . "件中" . $get_num . "を表示";

これで「全99件中10件を表示」というような表示が可能になります。

スポンサーリンク


Comment