Top Kommentatoren in der Sidebar


Der Artikel besteht aus 733 Wörtern. Geschätzte Lesezeit: 02:55 Minuten

Kommentare, man kann es wohl nicht oft genug wiederholen, sind das Salz in der Suppe eines Blogs. Es ist ja auch schön zu wissen, das das was man schreibt, einen anderen dazu verleitet seine Meinung dazu abzugeben.

Aber ist das nicht andererseits auch ein bisschen Fad, wenn nur der Kommentar dort jetzt unter einem Artikel steht, sein Autor aber nicht irgendwie noch anders gewürdigt wird? Ich finde schon. Und ein paar andere Blogger sind ja auch anscheinend der Meinung. Denn immer wieder laufen einen Blogs über den Weg, wo in der Sidebar die Top-Kommentator(inn)en gewürdigt werden.

Nur: muss es dafür ein zusätzliches Plugin sein? Ich finde, nicht so wirklich. Auch wenn mir bislang bei meinem Lösungsweg die Avatare fehlen. Aber vielleicht bringe ich das auch noch hin.

Wie ich mir überlegt habe, jetzt auch die fleißigsten Kommentator(inn)en auf meinem Blog an separater Stelle zu würdigen, habe ich mir natürlich auch Gedanken gemacht, wie ich das ohne Plugin hinbekommen könnte. Und da fiel mir ein, das ich die Lösung doch eigentlich schon auf dem Blog laufen habe.

Die müsste man - mit ein paar anderen Befehlen ausgestattet - doch auch hierfür verwenden können. Zumal sie ja schon von Haus aus dafür sorgt, das meine Kommentare nicht in die Zählung einfließen. Die Rede ist von Tanja's Top-Trackback-Lösung.

Denn dort werden ja schon die Trackbacker und Pinger der letzten 30 und 365 Tage angezeigt.

Tanja's Lösung schaut so aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function top_trackbacks_monat() {
global $wpdb;
$toptrack_query=&"SELECT SUBSTRING_INDEX(comment_author_url, '/', 3) as top_track, COUNT(*) as top_num FROM $wpdb->comments
WHERE comment_approved='1'
AND comment_type IN('trackback', 'pingback')
AND comment_date >= CURDATE() - INTERVAL 30 DAY
AND comment_author_url NOT LIKE 'https://themenfreund.de%'
GROUP BY top_track
Order by top_num DESC, comment_date ASC
LIMIT 3";
$toptrack_result = $wpdb->get_results($toptrack_query);
if ( !empty($toptrack_result) ) {
echo '
<ul>';
foreach ($toptrack_result as $comment) :
$tb_aut = $comment->top_track;
$tb_aut = str_ireplace("http://", "", $tb_aut);
echo '
	<li>'.$tb_aut.' ('.$comment->top_num.')</li>
';
endforeach;
echo '</ul>
';
}
}

Meine Top-Kommentator(inn)en-Lösung schaut wie folgt aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function top_commentators_jahr() {
	global $wpdb;
	$topcommentator_query="SELECT comment_author, comment_author_email, comment_type, SUBSTRING_INDEX(comment_author_url, '/', 3) as top_commentator, COUNT(*) as top_num FROM $wpdb->comments
		WHERE comment_approved='1' 
		AND comment_author_url IS NOT NULL
		AND comment_author_url != ''
		AND comment_author_email NOT LIKE 'webbi@themenfreund.de%'
		AND comment_author_email NOT LIKE 'kommentar@themenfreund.de%'
		AND comment_author_url NOT LIKE 'http://twitter.com/themenfreund%'
		AND comment_author_url NOT LIKE 'https://themenfreund.de%'
		AND comment_type NOT LIKE 'pingback' OR 'trackback'
		AND comment_date >= CURDATE() - INTERVAL 365 DAY  
		GROUP BY top_commentator
		Order by top_num DESC, comment_date ASC
		LIMIT 3";
	$topcommentator_result = $wpdb->get_results($topcommentator_query);
	if ( !empty($topcommentator_result) ) {
		foreach ($topcommentator_result as $comment) :
			$co_aut = $comment->top_commentator;
			$co_aut = str_ireplace("http://", "", $co_aut);
			echo '<ol>';
			echo '<li style="list-style-type:none"><div class="top-komm">'. get_avatar( $comment, 32 ),' <a href="'.$comment->top_commentator.'/" target="_blank">'.$comment->comment_author.'</a> ('.$comment->top_num.')</div></li>';
			echo '</ol>';
		endforeach;
		}
}

Was hab ich nun gemacht, bzw. geändert?

Zuerst habe ich jeweils die Top-Trackbacker-Funktion für die letzten 30 und die letzten 365 Tage kopiert

Dann natürlich als erstes die jeweiligen Funktions-Namen. Schließlich können - soweit ich weiß - nicht beide Funktionen mit dem gleichen Namen angesprochen werden. Dann habe ich alle vorkommenden Track-Begriffe durch den Begriff 'commentator' ersetzt.

Anschließend habe ich die Zeile 5 in Tanja's Version bei mir gelöscht. Das ist eigentlich das ganze Geheimnis - sofern es denn wirklich eines sein sollte.

Nun werden beide Varianten bei mir in der sidebar.php mit

1
2
3
4
<h3 class="sidebar-title1">Top Kommentatoren der letzten 30 Tage:</h3>
				<?php echo top_commentators_monat(); ?>
				<h3 class="sidebar-title4">Top Kommentatoren der letzten 365 Tage:</h3>
				<?php echo top_commentators_jahr(); ?>

aufgerufen.

Thats all.

Was mir jetzt allerdings wie erwähnt noch fehlt - aber dafür möchte ich nicht noch ein Plugin installieren - ist für jeden Kommentator / jede Kommentatorin das Gravatar-Bildchen anzeigen lassen zu können. Aber dafür bin ich leider in php nicht fit genug, um das bauen zu können.

Wenn jemand von Euch eine oder sogar die Lösung hat, immer her damit!

Update: Bitte auch diesen Artikel beachten

Marcus
Über Marcus 702 Artikel
Ich freue mich über Deinen Besuch auf meinem Blog! Wenn Dir der Artikel gefallen hat, teile ihn doch mit anderen und hinterlasse Deine Meinung. Mehr über mich gibt es hier zu lesen

Hinterlasse jetzt einen Kommentar

Kommentar hinterlassen

E-Mail Adresse wird nicht veröffentlicht.


*


CommentLuv - verlinke einen deiner Blog-Artikel