Wie bekomme ich die Anzahl der Kommentare in einem Beitrag?

Hallo,

ich verknüpfe einen Diskurs mit einer benutzerdefinierten Vorlage und muss die Anzahl der Kommentare abrufen, um sie im Detail des Beitrags anzuzeigen.
Hier ist der Artikel - První auta od Xiaomi. Rychlejší umí jet hodně přes 200 km/h! und hier ist der entsprechende Diskurs - První auta od Xiaomi. Rychlejší umí jet hodně přes 200 km/h! - Komentáře ke článkům - Komunita Svět Androida
Wie erhalte ich die aktuelle Anzahl der Kommentare?

Vielen Dank für Ihre Hilfe.

Hallo @Vladislav_Musílek,

Das WP Discourse-Plugin greift auf den Filter für die Standard-Wordpress-Funktion get_comments_number zu. Sie können also die Anzahl der Discourse-Kommentare zu einem Beitrag anzeigen, indem Sie Folgendes in Ihrer Vorlage ausgeben:

echo get_comments_number();`

Weitere Informationen zu WP Discourse-Kommentaren finden Sie unter

3 „Gefällt mir“

Hallo,

vielen Dank für Ihre Hilfe, aber das Problem ist, dass auf der bestehenden Website Kommentare vorhanden sind und ich die Anzahl der vorhandenen Kommentare und die Kommentare in Discourse ermitteln und sie addieren muss. Ist das möglich?

Wenn Sie die Gesamtzahl der WordPress- und Discourse-Kommentare für einen einzelnen Beitrag ermitteln möchten, funktioniert get_comments_number() (d. h. es wird die Summe beider zurückgeben).

Wenn Sie die Gesamtzahl aller Kommentare auf Ihrer Website (nicht von einem bestimmten Beitrag) ermitteln möchten, sei es von WordPress oder Discourse, ist dies eine eher subjektive Frage. Es hängt davon ab, was Sie unter “allen Kommentaren” verstehen. Sie müssen eine benutzerdefinierte Funktion dafür schreiben, und das würden Sie auch tun, wenn Sie nur WordPress-Kommentare für sich allein zählen würden. Sie würden so etwas tun und es in einem Shortcode oder Block verwenden

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

(Ich habe das gerade spontan geschrieben, also testen Sie es bitte, bevor Sie es verwenden :))

Beachten Sie, dass ich mich entschieden habe, die Anzahl der genehmigten WordPress-Kommentare und die Anzahl der Discourse-Kommentare für veröffentlichte Beiträge zurückzugeben. Es gibt andere Entscheidungen, die Sie dort treffen könnten, darüber, was für Ihre Zählung in Frage kommt.