smart | Webentwicklung
Alles rund um HTML5, PHP, WordPress & Co.

Top-Kommentatoren in WordPress anzeigen (ohne Plugin)

4. April 2012
Stephan
WordPress

In diesem Artikel 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 und ihr erhaltet mehr Kommentare zu euren Artikeln.

Beispiel

Vorab mal ein Beispiel wie das konkret aussehen könnte:

WordPress: Top-Kommentatoren anzeigen

Die Anzeige könnt ihr beliebig anpassen und z.B. auch zu den Namen noch die Gravatare der Kommentatoren anzeigen.

Der Code zum Ermitteln der Top-Kommentatoren

Der folgende Code kann im Ganzen in die functions.php-Datei 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;
}

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 – 38) wiederum wird dann die Ausgabe zusammengesetzt. Dabei wird je Top-Kommentator ein Listenelement <li></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 anzupassen)
  • der Kommentar ist auch eines und nicht etwa ein 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.

Der 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);

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.

Was haltet ihr von der Anzeige der Top-Kommentatoren in eurem Blog?

Kommentare  
0 Kommentare vorhanden
0 Trackbacks/Pingbacks vorhanden
Du bist herzlich eingeladen auch ein Kommentar zu hinterlassen!
Kommentar schreiben

Vielen Dank für dein Kommentar!