Mit Commentcount ist es möglich, die veröffentlichten Kommentare jedes Users zu zählen und auszugeben. Eine Registrierung der User ist nicht nötig und die Zählung funktioniert rückwirkend für alle Kommentare in der Vergangenheit. Commentcount ist dabei kein Plugin sondern ein einfaches Snippet.
WordPress bietet durch die Kommentarfunktionalität und den häufig eingesetzten Gravataren schöne Communityfeatures. Leider hat Gravatar aber auch Schattenseiten (siehe Pro und Contra Gravatar und Gravatar deaktivieren, Ladezeit optimieren). Diese Punkte waren für mich ausschlaggebend, künftig auf Avatare zu verzichten. Allerdings wollte ich sie nicht ersatzlos streichen und kam auf die Idee, die Beiträge aller User, die hier kommentieren, zu zählen.
Kommentare zählen: Commentcount einrichten
Mit Commentcount soll das Community-Feeling aufrecht erhalten werden. Beitragszähler sind in Foren gang und gäbe – wieso also nicht auch in WordPress einsetzen? Nach einer kurzen Recherche bin ich auf einen Beitrag von Veron Ang auf sparklette.net gestoßen. Bei caschy bin ich außerdem in den Kommentaren auf die „ist Kommentar freigschaltet“-Abfrage gestoßen. Diese beiden Snippets habe ich als Grundlage genommen und noch etwas erweitert. Der Code muss in der functions.php eingefügt werden:
[code]
function commentcount() {
global $wpdb;
$count = $wpdb->get_var(‚SELECT COUNT(comment_ID) FROM ‚ . $wpdb->comments. ‚
WHERE comment_author_email = "‘ . get_comment_author_email() . ‚"
AND comment_approved = "1"
AND comment_type NOT IN ("pingback", "trackback")‘
);
if ($count == 1) {
echo "(1 veröffentlichter Kommentar)";
} else {
echo "(".$count." veröffentlichte Kommentare)";
}
}
[/code]
In Zeile 4 wird in der Datenbank geschaut, wie oft die E-Mail des Users schon im System vorhanden ist. Zeile 5 ist dafür zuständig, dass nur freigeschaltete Kommentare gezählt werden. In Zeile 6 wird definiert, dass Ping- und Trackbacks nicht gewertet werden. Letzteres ist nur zur Sicherheit, funktionieren sollte es auch ohne diese Abfrage.
Da „1 veröffentlichte Kommentare“ weniger schön klingt, sind die Zeilen 8 bis 12 für die korrekte sprachliche Ausgabe zuständig. Bei nur einem Kommentar wird der Singular verwendet, bei mehreren der Plural.
Jetzt muss die Funktion an der entsprechenden Stelle aufgerufen werden. Bei meinem Theme ist das die funtions.php (Tipp: Einfach nach „vcard“ suchen, dann landest du an der richtigen Stelle im Code). Da der Schriftzug möglicherweise noch gestylt werden soll, packst du den Aufruf am besten in einen <span>-Tag und weist ihm eine Klasse zu:
[code]
<span class="commentcount"><?php commentcount(); ?></span>
[/code]
Als letzter Schritt kann die Ausgabe nach Belieben gestylt werden. Auf media-affin sieht der entsprechende CSS-Code so aus:
[code]
.commentcount {
font-weight: normal;
font-style: italic;
}
[/code]
Fazit
Ich bin mir sicher, dass du den Einbau in weniger als 15 Minuten geschafft hast. Wenn du die Lösung bei dir umgesetzt hast, würde ich mich über einen Kommentar oder eine Empfehlung des Artikels freuen!
Klasse Code-Schnipsel! Habe ich sofort bei mir im Blog eingebaut. Vielen Dank dafür.
Freut mich, wenn er dir hilft ;-)
Mir gefällt deine Lösung mit dem Tooltipp, das könnte ich mir vorstellen, hier auch in dieser Art zu lösen. Ich bin auf weitere Umsetzungen/Abwandlungen hier gespannt!
Ich hoffe auch noch auf ein paar Ideen zur Umsetzung. Ich werde wohl ein kleines „Belohnungssystem“ umsetzen und eine kleine Sternchen-Grafik o.ä. verbauen.
So könnte ich mir ab 100 Kommentare einen goldenen Stern, ab 50 einen silbernen, ab 10 einen aus Bronze und darunter irgend etwas anderes vorstellen. Im Title (Tooltipp) steht dann natürlich die Anzahl und ein kleines Dankeschön.
Jetzt habe ich 30,3°C in meinem Dachbüro und verschiebe das Ganze auf einen kühleren Tag.
Schön. Ich finde nur nicht die Stelle mit der „Vcard“. In der functions.php ist sie bei mir nicht :-/
Hi Mirko,
schau mal in der comments.php nach. Die Stelle, an der die Kommentare generiert werden, kann von Theme zu Theme variieren. Wenn du es da auch nicht findest, kann ich gerne mal danach schauen.