Je cherche à compter le nombre de publications en direct dans le type de publication personnalisé appelé "vidéos", mais uniquement celles de la catégorie "travail".
<?php $count_posts = wp_count_posts('videos'); echo $count_posts->publish; // ?>
Comment puis-je ajuster le code ci-dessus pour accomplir cela?
Merci!
Une solution alternative utilisant WP_Query serait:
$args = array(
'cat' => 4,
'post_type' => 'videos'
);
$the_query = new WP_Query( $args );
echo $the_query->found_posts;
Trouvé une solution.
<?php $posts = get_posts('post_type=videos&category=4');
$count = count($posts);
echo $count;
?>
Cela devrait également fonctionner:
$category = get_term('work', 'category');
$posts_in_category = $category->count;
Pour une taxonomie personnalisée spécifique, essayez:
$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;
Documentation sur https://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters
En gros, si vous le faites avec votre solution trouvée, vous gaspillez beaucoup de ressources de base de données lorsque vous avez beaucoup de messages à récupérer.
$query = new WP_Query();
echo $query->found_posts();
Cependant, WP_Query-> found_posts récupère simplement 'posts_per_page' et fait COUNT (*) le travail mysql pour vous. Donc, je vous recommande d'utiliser le dernier.