Comment obtenir le nombre de commentaires dans un post ?

Bonjour,

Je relie un discourse avec un modèle personnalisé et j’ai besoin d’obtenir le nombre de commentaires à afficher dans le détail de la publication.
Voici l’article - První auta od Xiaomi. Rychlejší umí jet hodně přes 200 km/h! et voici le discourse correspondant - První auta od Xiaomi. Rychlejší umí jet hodně přes 200 km/h! - Komentáře ke článkům - Komunita Svět Androida
Comment puis-je obtenir le nombre actuel de commentaires ?

Merci de votre aide.

Salut @Vladislav_Musílek,

Le plugin WP Discourse s’accroche au filtre de la fonction standard de Wordpress get_comments_number. Vous pouvez donc afficher le nombre de commentaires Discourse sur un article en l’affichant dans votre modèle :

echo get_comments_number();

Pour en savoir plus sur les commentaires WP Discourse, consultez

3 « J'aime »

Bonjour,

Merci pour votre aide, mais le problème est qu’il y a des commentaires laissés sur le site existant et je dois obtenir le nombre de commentaires existants, les commentaires sur Discourse et les additionner. Est-il possible de le faire ?

Si vous cherchez à obtenir le total des commentaires Wordpress et Discourse pour un seul article, alors get_comments_number() fonctionnera (c’est-à-dire qu’il retournera la somme des deux).

Si vous cherchez à obtenir un total de tous les commentaires sur votre site (pas d’un article spécifique), qu’ils proviennent de Wordpress ou de Discourse, c’est une question quelque peu subjective. Cela dépend de ce que vous entendez par « tous les commentaires ». Vous devrez écrire une fonction personnalisée pour cela, et vous le feriez si vous comptiez uniquement les commentaires Wordpress. Vous feriez quelque chose comme ceci et l’utiliseriez dans un shortcode ou un bloc

function count_all_comments() {
     $wordpress_count = wp_count_comments();
     $count = $wordpress_count->approved;
     $query_args = array(
      	'post_status' => 'publish',
     );
     $query = new WP_Query($query_args);
     if ( $query->have_posts() ) {
	    while( $query->have_posts() ) {
		  $query->the_post();
		  $count += intval( get_post_meta( get_the_ID(), 'discourse_comments_count', true ) );
        }
     }
    return $count;
}

(Je viens d’écrire ceci à la volée, veuillez donc le tester avant de l’utiliser :slight_smile: )

Notez que j’ai choisi de retourner le nombre de commentaires Wordpress approved et le nombre de commentaires Discourse sur les articles publiés. Il existe d’autres choix que vous pourriez faire quant à ce qui qualifie votre décompte.