¿Cómo obtener el recuento de comentarios en una publicación?

Hola,

Estoy enlazando un discourse con una plantilla personalizada y necesito obtener el número de comentarios para mostrarlo en el detalle de la publicación.
Aquí tengo el artículo: První auta od Xiaomi. Rychlejší umí jet hodně přes 200 km/h! y aquí está el discourse correspondiente: První auta od Xiaomi. Rychlejší umí jet hodně přes 200 km/h! - Komentáře ke článkům - Komunita Svět Androida
¿Cómo obtengo el número actual de comentarios?

Gracias por tu ayuda.

Hola @Vladislav_Musílek,

El plugin WP Discourse se engancha al filtro de la función estándar de WordPress get_comments_number. Por lo tanto, puedes mostrar el número de comentarios de Discourse en una publicación haciendo un echo de eso en tu plantilla:

echo get_comments_number();

Para más información sobre los comentarios de WP Discourse, consulta

3 Me gusta

Hola,

Gracias por tu ayuda, pero el problema es que hay comentarios en el sitio existente y necesito obtener el número de comentarios existentes, los comentarios en Discourse y sumarlos. ¿Es posible hacer esto?

Si buscas obtener el total de comentarios de Wordpress y Discourse para una sola publicación, entonces get_comments_number() funcionará (es decir, devolverá la suma de ambos).

Si buscas obtener un total general de todos los comentarios en tu sitio (no de una publicación específica), ya sean de Wordpress o Discourse, esta es una pregunta algo subjetiva. Depende de lo que entiendas por “todos los comentarios”. Necesitarás escribir una función personalizada para esto, y lo harías si solo estuvieras contando los comentarios de Wordpress por sí solos. Harías algo como esto y lo usarías en un shortcode o bloque

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

(Acabo de escribir esto sobre la marcha, así que por favor pruébalo antes de usarlo :))

Ten en cuenta que he optado por devolver el recuento de comentarios de Wordpress approved y el recuento de comentarios de Discourse en las publicaciones publicadas. Hay otras opciones que podrías elegir sobre lo que califica para tu recuento.