특정 게시물에 대한 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 댓글 수를 반환하도록 선택했습니다. 어떤 댓글을 카운트에 포함시킬지에 대해서는 다른 선택지도 가능합니다.