web-dev-qa-db-fra.com

Compter les messages dans un type de message personnalisé et une catégorie spécifique

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!

6
Red

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;
6
Stephen S.

Trouvé une solution.

<?php $posts = get_posts('post_type=videos&category=4'); 
$count = count($posts); 
echo $count; 
?>
5
Red

Cela devrait également fonctionner:

$category = get_term('work', 'category');
$posts_in_category = $category->count;
3
Viktor Kruglikov

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

2
michalzuber

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.

0
Kwag.degi