問題
Wordpressで条件に応じた記事の件数を取得するには?
解決策
クエリのオプションを設定し、
- 「WP_Query」を起動させて、「found_posts」を使用する
- 「get_posts」を起動させて、「count()」を使用する
ことで件数を取得できます。
記事の件数を取得する方法
WordPressで記事の総件数や期間内(特定の年月など)の件数や特定のタームに登録された件数など、条件に応じた記事の件数を取得する方法をご紹介します。
「WP_Query」を使用した例
クエリのオプションを設定し、「WP_Query」を起動させて、「found_posts」を使用することで件数を取得できます。
$args=array(
'posts_per_page' => -1,
'post_type' => $post_type,
'paged' => $paged
);
$my_query = new WP_Query( $args );
echo "記事数:".$my_query->found_posts."件";
「get_posts」を使用した例
クエリのオプションを設定し、「get_posts」を起動させて、「count()」を使用することで件数を取得できます。
$args = array(
'posts_per_page' => -1,
'post_type' => $post_type
);
$my_query = get_posts( $args );
echo "記事数:".count( $my_query )."件";
クエリのオプションの設定例
クエリのオプションの設定例は以下となります。
記事の総数
$args = array(
'posts_per_page' => -1,
'post_type' => $post_type
);
記事の期間内(特定の年月)の件数
$args = array(
'posts_per_page' => -1,
'post_type' => $post_type,
'date_query' => array(
array(
'after' => array(
'year' => get_query_var('year'),
'month' => get_query_var('monthnum'),
'day' => 1,
),
'before' => array(
'year' => get_query_var('year'),
'month' => get_query_var('monthnum'),
'day' => 31,
),
'inclusive' => true,
),
)
);
記事の特定のタームに登録された記事の総数
$args = array(
'posts_per_page' => -1,
'post_type' => $post_type,
'tax_query' => array(
array(
'taxonomy' => $post_cat,
'field' => 'slug',
'terms' => $term->slug
)
)
);
参考ページ
以下のサイトが、より詳しく解説してくれています。
【[WP]wp_count_postsで記事数を取得して表示したり条件分岐する方法 – WEBデザインのTIPSまとめサイト「ウェブアンテナ」】
http://kihon-no-ki.com/wordpress-wp-query-found-posts-property
コメント