게시물에 댓글 수를 가져오는 방법?

안녕하세요,

커스텀 템플릿을 사용하여 디스코urses를 링크하고 있으며, 게시글 상세 페이지에 댓글 수를 표시해야 합니다.
아래에 해당 기사와 그에 대응하는 디스코urses 링크를 첨부합니다.
기사: První auta od Xiaomi. Rychlejší umí jet hodně přes 200 km/h!
디스코urses: První auta od Xiaomi. Rychlejší umí jet hodně přes 200 km/h! - Komentáře ke článkům - Komunita Svět Androida
현재 댓글 수를 어떻게 가져올 수 있을까요?

도움 주셔서 감사합니다.

안녕하세요 @Vladislav_Musílek,

WP Discourse 플러그인은 표준 WordPress 함수 get_comments_number의 필터에 연결됩니다. 따라서 템플릿에서 해당 값을 출력하여 게시물의 Discourse 댓글 수를 표시할 수 있습니다:

echo get_comments_number();`

WP Discourse 댓글에 대한 자세한 내용은 아래를 참고하세요.

안녕하세요,

도와주셔서 감사합니다. 다만 기존 사이트에는 댓글이 남아 있는 상태이고, 저는 기존 댓글 수와 Discourse의 댓글 수를 합산해야 합니다. 이것이 가능한지 알려주시면 감사하겠습니다.

특정 게시물에 대한 Wordpress와 Discourse 댓글의 합계를 구하려는 경우, get_comments_number()를 사용하면 됩니다(즉, 두 시스템의 댓글 수를 합산하여 반환합니다).

특정 게시물이 아닌 사이트 전체의 모든 댓글(Wordpress 또는 Discourse에서 온 것)의 합계를 구하려는 경우, 이는 다소 주관적인 질문입니다. "모든 댓글"이 정확히 무엇을 의미하는지에 따라 달라지기 때문입니다. 이를 위해서는 커스텀 함수를 작성해야 하며, Wordpress 댓글만 따로 세는 경우에도 마찬가지입니다. 다음과 같은 코드를 작성하여 shortcode나 블록에서 사용할 수 있습니다.

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

(이 코드는 즉석에서 작성한 것이므로 사용 전에 반드시 테스트해 주세요 :))

Wordpress의 approved(승인된) 댓글 수와 게시된 게시물에 대한 Discourse 댓글 수를 반환하도록 선택했습니다. 어떤 댓글을 카운트에 포함시킬지에 대해서는 다른 선택지도 가능합니다.