Como obter o número de comentários em uma postagem?

Olá,

Estou vinculando um discourse com um modelo personalizado e preciso obter o número de comentários para exibir nos detalhes da postagem.
Aqui está o artigo - První auta od Xiaomi. Rychlejší umí jet hodně přes 200 km/h! e aqui está o discourse correspondente - První auta od Xiaomi. Rychlejší umí jet hodně přes 200 km/h! - Komentáře ke článkům - Komunita Svět Androida
Como obtenho o número atual de comentários?

Obrigado pela sua ajuda.

Olá @Vladislav_Musílek,

O plugin WP Discourse se conecta ao filtro da função padrão do WordPress get_comments_number. Assim, você pode mostrar o número de comentários do Discourse em uma postagem ecoando isso em seu template:

echo get_comments_number();

Para mais informações sobre os comentários do WP Discourse, confira:

3 curtidas

Olá,

obrigado pela sua ajuda, mas o problema é que existem comentários deixados no site existente e preciso obter o número de comentários existentes, comentários no Discourse e somá-los. É possível fazer isso?

Se você estiver procurando obter o total de comentários do Wordpress e do Discourse para uma única postagem, então get_comments_number() funcionará (ou seja, retornará a soma de ambos).

Se você estiver procurando obter um total geral de todos os comentários em seu site (não de uma postagem específica), seja do Wordpress ou do Discourse, esta é uma pergunta um tanto subjetiva. Depende do que você quer dizer com “todos os comentários”. Você precisará escrever uma função personalizada para isso, e faria isso se estivesse apenas contando os comentários do Wordpress por si só. Você faria algo como isto e o usaria em um shortcode ou bloco

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;
}

(Acabei de escrever isso rapidamente, então, por favor, teste antes de usar :))

Note que escolhi retornar a contagem de comentários do Wordpress approved e a contagem de comentários do Discourse em postagens publicadas. Existem outras escolhas que você poderia fazer sobre o que se qualifica para sua contagem.