web-dev-qa-db-fra.com

Obtenir le nombre total de commentaires d'articles dans une taxonomie personnalisée spécifique

J'ai quelques difficultés à obtenir le nombre total de commentaires des publications dans une taxonomie personnalisée spécifique.

La configuration est la suivante: j'ai créé une taxonomie personnalisée pour mes publications, appelée "fonctionnalités". Dans cette taxonomie, il me faut quatre ou cinq termes. Ensuite, certains de mes messages sont placés dans le long terme 1, le long terme 2, etc.

Je peux obtenir que cela fonctionne et en faisant une requête je peux aussi récupérer combien de posts sont dans chaque terme. Mais ensuite, je voudrais montrer le nombre total de commentaires de tous les articles de chaque terme. Ainsi, par exemple, sous le terme 1, le nombre total de messages est de 12 et le nombre total de commentaires est de 34.

J'ai essayé avec cette requête:
SELECT SUM(comment_count) AS totalcc FROM wp_posts, wp_term_relationships WHERE wp_term_relationships.term_taxonomy_id = {$term->term_id} AND object_id = ID
Mais cela me donne une réponse incorrecte, je ne peux pas vraiment avoir un aperçu de mes échecs.

Peut-être existe-t-il un moyen plus simple de le faire, un moyen fourni par Wordpress, mais je ne suis pas parvenu à le localiser.

Toute aide ou suggestion serait appréciée.

Sincère
- Mestika

4
Mestika

Vous devrez parcourir vos publications, utilisez get_comments_number() pour obtenir le nombre de commentaires pour chaque publication, puis accumulez le nombre total de commentaires dans un message. variable séparée. par exemple.:

<?php
$features_comment_count = 0;

if ( have_posts() ) : while ( have_posts() ) : the_post();

$features_comment_count += get_comments_number();

endwhile; endif;
?>

(Je suppose que vous savez comment interroger de manière personnalisée vos publications et pouvez adapter le code ci-dessus en fonction des besoins.)

Si vous souhaitez compter les commentaires avant la sortie du contenu d'un message, exécutez simplement la boucle ci-dessus, puis rembobinez les messages à l'aide de rewind_posts() :

<?php rewind_posts(); ?>

Ensuite, vous pouvez sortir votre boucle de messages comme d’habitude.

1
Chip Bennett