WordPress: Kommentaranzahl anzeigen (ohne Plugin)

Vor kurzem hatte ich euch bereits gezeigt, wie ihr die Artikelanzahl in WordPress anzeigen könnt. Ähnlich der Artikelanzahl lässt sich auch die Kommentaranzahl auf einfache Weise ermitteln.

Der vorgestellte Code kann zum einen die Gesamtanzahl der abgegebenen Kommentare anzeigen. Zum anderen kann aber auch die Anzahl der Kommentare der letzten X Tage ermittelt und ausgegeben werden.

Code zum Ermitteln der Kommentaranzahl

Kopiert den folgenden Code einfach in eure functions.php eures Themes:

function get_comments_count($by_days = false, $days = 30)
{
    global $wpdb;

    $day_condition = $by_days ? 'AND comment_date >= DATE_SUB(CURDATE(), INTERVAL ' . $days . ' DAY)' : '';

    $comment_count = $wpdb->get_col('
        SELECT
            COUNT(comment_ID)
        FROM
            ' . $wpdb->comments . ' c
        INNER JOIN
            ' . $wpdb->posts . ' p ON (c.comment_post_id = p.ID)
        WHERE
            comment_approved = "1"
            AND c.comment_type NOT IN ("trackback", "pingback")
            AND c.user_id != "1"
            AND p.post_status = "publish"
            ' . $day_condition . '
    ');

    return $comment_count[0];
}
PHP - Datei: functions.php

Der erste Teil der Funktion (Zeile 5) dient zum Überprüfen, ob die Gesamtanzahl der Kommentare ermittelt oder nur Kommentare der letzten X Tage berücksichtigt werden.

Im zweiten Teil befindet sich dann die entsprechende SQL-Abfrage (Zeile 7 - 20).

Kurze Erklärung der SQL-Anweisung im Detail

SELECT (Zeile 8 - 9)
Mittels COUNT stellen wir die Anzahl der Kommentare fest. Die COUNT-Funktion wird dabei auf die Kommentar-ID, die für jeden abgegebenen Kommentar eindeutig ist, angewendet.

FROM (Zeile 10 - 13)
Wir beziehen uns hier auf die comments-Tabelle von WordPress. Zusätzlich verbinden wir die Tabelle noch mit der posts-Tabelle mittels einem INNER JOIN. Die Verknüpfung findet dabei über die Post-ID statt.

WHERE (Zeile 14 - 19)
Zu den Bedingungen zählen folgende Punkte:

  • bei dem Kommentar handelt es sich um einen genehmigten Kommentar
  • der Kommentar ist kein Trackback oder Pingback
  • die ID des Autors eines Kommentars ist ungleich 1 – falls ihr also einen Admin-Account mit der User-ID 1 habt, werden diese Kommentare nicht mitgezählt
  • der zum Kommentar dazugehörige Artikel wurde bereits veröffentlicht bzw. hat den Status publish
  • Annahme: $by_days ist true - Datum der Veröffentlichung des jeweiligen Kommentars muss kleiner dem Datum sein, dass vor X (days) Tagen war

Code zum Anzeigen der Kommentaranzahl

Den folgenden Code könnt ihr wie immer an beliebige Stelle in eurem WordPress-Theme platzieren. Möchtet ihr beispielsweise die Anzahl aller bisher abgegebenen Kommentare in der Sidebar anzeigen, muss der Code in eure sidebar.php eingefügt werden:

echo get_comments_count();
PHP - Datei: sidebar.php

Um nur die Kommentaranzahl der letzten 20 Tage anzuzeigen, genügt folgender Aufruf:

echo get_comments_count(true, 20);
PHP - Datei: sidebar.php

Fazit

Der vorgestellte Code-Schnipsel ist eine von mehreren Möglichkeiten zur Anzeige eurer Kommentaranzahl.

Falls ihr nur die Gesamtanzahl eurer Kommentare benötigt, bräuchtet ihr im Grunde aber auch nur die von WordPress bereitgestellte wp_count_comments-Funktion verwenden.

Aktualisierungshistorie:
  • 6. November 2012
    ursprüngliche Veröffentlichung in meinem ehemaligen Blog "Smart-Webentwicklung"
Feedback

Für Feedback zum Beitrag, seien es Fragen, Korrigierungen und/oder Anregungen, könnt ihr mir gerne eine Nachricht per E-Mail oder Mastodon schreiben (siehe Kontakt).