Summe der Kommentare in WordPress

Comment Counter Example
Auf einigen amerikanischen Blogs und aktuell bei Cindy wird das neue Plugin Liz Comment Counter von Ozh vorgestellt, welches es dem Anwender sehr leicht macht, die Gesamtanzahl der Kommentare im Frontend des Blog darzustellen.

Wer aber nicht mit Widgets arbeitet oder die vielen schönen Zusatzfeatures wie „Farbe per Klick“ anpassen nicht benötigt, der kann es beispielsweise mit einer kleinen Funktion im Theme ebenso lösen.

Dazu legt ihr die folgenden Funktion in die functions.php eures Themes.


if ( !function_exists('fb_total_comments') ) {
	function fb_total_comments() {
		global $wpdb;
		$totalcomments = (int) $wpdb->get_var("SELECT COUNT(comment_ID)
							FROM $wpdb->comments
							WHERE comment_approved = '1'
							");
		if (0 < $totalcomments) $totalcomments = number_format($totalcomments);
	
		echo $totalcomments;
	}
}

Ab nun steht sie zur Nutzung im Theme bereit und kann in eine Ausgabe eingebracht werden. Die einfachste Form könnte beispielsweise wie folgt aussehen.


<?php if ( function_exists('fb_total_comments') ) { ?>
<p><?php fb_total_comments(); ?> Kommentare</p>
<?php } ?>

Ebenso kann man natürlich auch jedes andere HTML-Element nutzen und eine Klasse oder ID zuweisen, so dass man dann per CSS diesen typischen Counterbutton hat.

Da ich grafisch nicht so bewandert bin, aber Cindy immer wieder gern mit diesen kleinen Buttons spielt - eventuell kann sie dem einen oder anderen den entsprechenden Button zur Verfügung stellen. Es gibt sicher auch einen Web 2.0-Service? Edit: gefunden: Brilliant Button Maker

Dann gibt man die Anzahl mit Hilfe einer ID aus und formatiert diese per CSS, auch dazu ein Beispiel.


<?php if ( function_exists('fb_total_comments') ) { ?>
<div id="comment_count_button"><?php fb_total_comments(); ?></div>
<?php } ?>

Dass passende Stylesheet für die vergebene ID.


#comment_count_button {
	width:74px; // je nach Größe (breite) des Button
	height:14px; // je nach Größe (höhe) des Button
	text-align: left;
	font-size: 11px;
	padding-left: 1px 0 0 6px;
	color: #000;
	background: url(images/button.gif) no-repeat;
	margin-bottom: 2px;
}

Einfacher ab WordPress v2.5

Ist man mit WordPress ab Version 2.5 unterwegs, dann kann man auch die internen Funktionen nutzen und diese einfach und unkompliziert ausgeben. Die obige Funktion ist dann nicht notwendig! Der folgende Syntax gibt das gleiche wieder, wobei ich zusätzlich auf die Mehrzahl des nachstehenden Wortes eingehe und in das Beispiel integriert habe.


<?php if ( function_exists('get_comment_count') ) { ?>
<p>
	<?php
	$num_comm = get_comment_count();
	$num_comm = $num_comm['approved']; //approved, awaiting_moderation, spam, total_comments
	$num_comm = sprintf( __ngettext( '%s Kommentar', '%s Kommentare', $num_comm ), number_format_i18n( $num_comm ) ); 
	echo $num_comm;
	?>
</p>
<?php } ?>

Die Funktion get_comment_count() gibt ein Array zurück, welches verschieden Formen der Kommentare enthält. Damit kann man ohne SQL-Abfrage die unterschiedlichen Formen ausgeben. Es kann als Schlüssel genutzt werde: approved, awaiting_moderation, spam, total_comments. Die Titel der Schlüssel sprechen sicher für sich.

Fazit

Viel Spaß mit dem Anpassen und ab nun wird neben dem Feedburner-Button wohl der Kommentarcounter-Button zum Standard für Blogs.
* In meinem aktuellen Design findet man diesen Zähler im übrigen rechts unten in einer der Boxen.

Comments are closed.