WordPress: Top-Kommentatoren anzeigen (ohne Plugin)

In diesem Beitrag zeige ich euch, wie ihr ohne Einsatz eines zusätzlichen Plugins die Top-Kommentatoren eures WordPress-Blogs anzeigen könnt.

Für die Leser eures Blogs kann es ein schöner Anreiz sein, zu wissen, dass die Top-Kommentatoren z.B. auf der Startseite eures Blogs angezeigt und verlinkt werden. Dadurch wird das Kommentieren für die Leser eventuell interessanter, wodurch ihr mehr Kommentare und somit Feedback zu euren Beiträgen erhaltet.

Code zum Ermitteln der Top-Kommentatoren

Der folgende Code kann im Ganzen in die functions.php eures Themes kopiert werden:

function get_top_commentators($dayInterval = 30, $limit = 5)
{
    global $wpdb;

    $results = $wpdb->get_results('
        SELECT
            COUNT(comment_author_email) AS comments_count,
            comment_author,
            comment_author_url
        FROM
            '.$wpdb->comments.'
        WHERE
            comment_author_email != ""
            AND user_id != 1
            AND comment_type = ""
            AND comment_approved = 1
            AND comment_date >= DATE_SUB(CURDATE(), INTERVAL '.$dayInterval.' DAY)
        GROUP BY
            comment_author_email
        ORDER BY
            comments_count DESC,
            comment_author ASC
        LIMIT '.$limit.'
    ');

    $output = '<ul>';

    foreach($results as $row)
    {
        $url = $row->comment_author_url;
        $title = $row->comment_author;
        $text = $row->comment_author;
        $output .= '<li>';
        $output .= '<a href="'.$url.'" title="'.$title.'">';
        $output .= $text.'</a>';
        $output .= '('.$row->comments_count.')';
        $output .= '</li>';
    }

    $output .= '</ul>';

    return $output;
}
PHP - Datei: functions.php

Diese Funktion macht im ersten Teil (Zeile 1 - 24) nichts anderes, als die Top 5 Kommentatoren der letzten 30 Tage aus der Datenbank zu holen. Im zweiten Teil (Zeile 26 - 40) wiederum wird dann die Ausgabe zusammengesetzt. Dabei wird je Top-Kommentator ein Listenelement <li> erzeugt, dessen Inhalt ein Link ist und dem in Klammern die Anzahl der Kommentare folgt. Der Link verweist auf die Website des jeweiligen Kommentators und der Link-Titel und der Link-Text werden mit dem Namen des Kommentators gefüllt.

In diesem Beispiel ist der Link ein "follow"-Link, aber ihr könnt den Code natürlich anpassen und den Link einfach auf "nofollow" setzen (rel="nofollow").

Kurze Erklärung der SQL-Anweisung im Detail

SELECT (Zeile 6 - 9)
Selektiert werden die Anzahl der Kommentare, die Namen und die Website-URLs der Kommentatoren.

FROM (Zeile 10 - 11)
Wie nicht anders zu erwarten war, beziehen wir uns auf die comments-Tabelle von WordPress.

WHERE (Zeile 12 - 17)
Zu den Bedingungen zählen folgende Punkte:

  • die E-Mail-Adresse ist nicht leer
  • der Kommentar wurde nicht von dem (Admin)-User mit der ID 1 geschrieben (ID ist ggf. anzupassen)
  • der Kommentar ist kein Trackback oder Pingback
  • der Kommentar wurde freigegeben
  • der Kommentar ist innerhalb der letzten 30 Tage geschrieben worden

GROUP BY & ORDER BY & LIMIT (Zeile 18 - 23)
Gruppiert wird nach den E-Mail-Adressen der Kommentatoren, um so mittels COUNT() die richtige Anzahl der Kommentare zu ermitteln. Geordnet werden die selektierten Datenätze erst absteigend nach der Anzahl der Kommentare und anschließend aufsteigend nach den Namen. Als letztes wird nur noch festgelegt, dass ingesamt 5 Datensätze selektiert werden.

Code zum Anzeigen der Top-Kommentatoren

Der folgende Code kann an beliebige Stelle in eurem WordPress-Theme platziert werden. Möchte man also z.B. die Liste der Top 3 Kommentatoren der letzten 15 Tage in der Sidebar anzeigen, kann man den folgenden Code z.B. in die sidebar.php einfügen.

echo get_top_commentators(15, 3);
PHP - Datei: sidebar.php

Fazit

Die Top-Kommentatoren anzuzeigen ist, wie ich finde eine nützliche Sache, um mehr Kommentare in seinem Blog zu erhalten. Jedoch sollte man selbst entscheiden, ob es ratsam ist "follow"-Links zu nutzen oder nicht (Stichwort Spam).

Des Weiteren kann man auch die Zeitspanne variieren und nicht wie im Beispiel die Top-Kommentatoren der letzten 30 Tage anzeigen, sondern als Referenz nur die letzten 7 Tage nehmen, damit auch neue Besucher eures Blog eine gute Chance haben in der Liste zu erscheinen.

Aktualisierungshistorie:
  • 4. April 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).