「ビデオ」というカスタム投稿タイプに含まれる投稿数を数えようとしていますが、「仕事」というカテゴリの投稿のみを数えています。
<?php $count_posts = wp_count_posts('videos'); echo $count_posts->publish; // ?>
これを達成するためにどのように上記のコードを調整できますか。
ありがとうございます。
WP_Query を使用した代替ソリューションは次のようになります。
$args = array(
'cat' => 4,
'post_type' => 'videos'
);
$the_query = new WP_Query( $args );
echo $the_query->found_posts;
解決策を見つけました。
<?php $posts = get_posts('post_type=videos&category=4');
$count = count($posts);
echo $count;
?>
これもうまくいくはずです。
$category = get_term('work', 'category');
$posts_in_category = $category->count;
特定のカスタム分類法を試してください。
$the_query = new WP_Query( array(
'post_type' => 'CUSTOM_POST_TYPE',
'tax_query' => array(
array(
'taxonomy' => 'CUSTOM_TAXONOMY',
'field' => 'id',
'terms' => TERM_ID
)
)
) );
$count = $the_query->found_posts;
https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parametersにあるドキュメント
基本的にあなたがあなたの見つけた解決策でそれをするならば、あなたが取得する投稿がたくさんあるときあなたはかなりのDBリソースを浪費するでしょう。
$query = new WP_Query();
echo $query->found_posts();
しかし、WP_Query-> found_postsは単に 'posts_per_page'を取得し、COUNT(*)mysqlジョブを実行します。だから私はあなたが後者のものを使うことを勧めます。
私はこれが古いスレッドであることを知っています、しかしそれはグーグルで最初に現れるので、これを行う方法についての本当の解決策はここにあります。
$term = get_term( $termId, $taxonomy );
$total_in_term = $term->count;
だからあなたは用語のIDと分類法を渡す必要があります。これは、最軽量のソリューションであり、カスタム分類法を使用する利点があります。