
Wie der Titel schon (nicht) sagt, geht es hier um ein neues Plugin für WordPress. Nachdem mir das alte “Top Commentators”-Widget vom Konzept zwar gefiel aber die Durchführung nicht das war, was ich haben wollte musste ein neues Widget her.
Als erstes einmal der Grund warum mir das alte nicht gefiel: Wenn jemand hier im Blog vor einem Jahr 500 Kommentare geschrieben und kein anderer diese Zahl bisher erreicht hätte, würde diese Person auf dem ersten Platz der Liste stehen. Das ist im Prinzip ja auch kein Problem aber wenn er schon seit einem halben Jahr den Blog überhaupt nicht mehr besucht hat, sollte er meiner Meinung nach seinen Platz räumen und den aktuellen Top-Kommentar-Schreibern ermöglichen Platz 1 zu belegen.
An dieser Stelle kommt mein Widget daher. Für jeden Kommentar-Schreiber (mit eigener URL) wird dabei eine Punktezahl generiert. Damit nicht immer die komplette Datenbank berechnet werden muss, werden nur die Kommentare der letzten 10 Monate – im Widget einstellbar – berücksichtigt. Dabei wird für jeden Kommentar eine Punktezahl zwischen 0 und 1 errechnet. Dazu dient folgende Formel:

Und um die Gesamtpunktzahl für den Autoren zu ermitteln werden die Punkte der Kommentare im eingestellten Zeitraum aufsummiert. Die 10 Schreiber – ebenfalls einstellbar – mit den meisten Punkten werden dann im Widget angezeigt. So haben die Kommentar-Schreiber, die aktuell am Meisten kommentieren die größte Chance auf einen hohen Platz zu kommen. Aber auch die Häufigkeit der Kommentare spielt mit in die Auflistung hinein.
In der Technik kommt für die ganze Auswertung eine einzige SQL-Abfrage zur Verwendung. Das bedeutet, dass das PHP-Widget selber kaum Arbeit leisten muss. Zusätzlich sollten die meisten SQL-Server häufig gestellte Anfragen in den Query-Cache auslagern, so dass das Ergebnis der Abfrage ebenfalls sehr schnell zur Verfügung steht.
Das neue Widget könnt Ihr in der Sidebar bei mir ganz rechts schon sehen. Normalerweise müsste sich sobald Ihr einen Kommentar schreibt auch etwas an der Reihenfolge tun. (Außer Ihr habt zu viele Punkt nach oben hin offen bis zum nächsten Platz.)
Falls Ihr meine eigenen Kommentare dabei vermisst: Es gibt eine Option um die Kommentar-Autoren, die am WordPress angemeldet sind wenn sie kommentieren von der Auswertung auszunehmen. (Ich würde sonst mit einem sehr großen Punkteabstand an Platz 1 stehen…)
Das Plugin ist im WordPress-Plugin-Verzeichnis verfügbar und kann einfach über das WordPress-Backend installiert werden.


Sauber Knut – wenn ich mehr Kommentare auf meiner Seite hätte, dann würd ichs sicher installieren. Sieht super aus
Die Rechenformel ist wahrlich nicht schlecht und sorgt für mehr Gerechtigkeit. Und nur eine einzige SQL-Abfrage? Wow!
Hört sich gut an, werde ich gleich mal installieren und schauen wer bei mir auf Platz eins steht
Wollte schon lange mal die Vielschreiber belohnen, mir haben aber auch die Ansätze bisher nicht so gefallen.
Lieben Gruß
Sven
Super Idee & Umsetzung!
Mal schauen, vielleicht werde ich es bei mir auch installieren
Whau das ging ja richtig schnell bei WordPress und natürlich auch bei Dir. Erst gestern die Idee gehabt und schon läuft alles. Respekt!
Ich habe eine Frage:
Welcher Wert wird für die Liste genommen? Name oder E-Mail? Also was passiert, wenn zwei Leute mit demselben Namen, aber unterschiedlicher Mail-Adresse kommentieren? Soll es ja geben…
@kari: Vielen Dank. Die Kommentare bei dir kommen sicher bald auch viel mehr. Noch ist dein Blog ja ganz jung
@leo1969: Jo extra dahin optimiert, dass das so klappt und nicht viel Resourcen braucht.
@Sven: Na dann freut es mich doch umso mehr, dass dir meine Lösung gefällt
Und wenn es da Verbesserungsvorschläge o.Ä. gibt einfach mich anschreiben
@Jeffrey: Vielen Dank.
@Spielkind: Dankeschön!
Naja fairer Weise gesagt: Vorgestern Abend die Idee gehabt und gestern dann umgesetzt
Aber is eigentlich auch n relativ einfaches Plugin
@Konna: Name und Domain. Also solange die Webseiten der beiden Benutzer nicht auf der gleichen Domain liegen werden sie mit 2 Einträgen aufgeführt. (Wäre gestern auch hier noch zu sehen gewesen aber heute ist der eine Markus aus der Liste gerutscht
)
Super Idee Knut. Leider nutze ich ja GravatarGrid ist eine Umsetzung dafür auch möglich? Ich habe immer sonderwünsche Gelle *fg*
Duergy
@Duergy: Du meinst, dass die Kommentatoren nicht als Link angezeigt werden sondern so wie im Gravatar-Grid?
Ja genau. Fände ich cool, wenn man durch das in deinem Plugin eingeführte Scoring auf das GravatGrid erweitern könnte oder Ähnlich.
@Duergy: Du siehst die neue Funktion schon bei mir rechts in der Sidebar… Momentan nur in der Entwicklerversion weil das Ding noch einen Bug hat, den ich erstmal ausbügeln muss. Aber in der 0.4.0 wird das neue Feature drin sein.
Ja Super danke dir. Mit dem Bug meinst du, das mein Gravatar nicht angezeigt wird?
grüße
Duergy
@Duergy: Ähm nö das meinte ich nicht. Den Bug habe ich gefixed und dein Gravatar ist immer noch nicht da… Muss ich mir nachher mal anschauen warum der nicht geladen wird.
@Duergy: War kein echter Bug aber ich habe es trotzdem gefixed. Lag daran, dass du deine Domain immer groß schreibst… Deswegen hat er den Gravatar nicht gefunden. Lies sich aber schnell beheben und jetzt kannst du meinetwegen in der Mail-Adresse jeden zweiten Buchstaben groß schreiben und es macht keine Probleme mehr
Hihi *g* Okay sieht echt gut aus. Dann warte ich mal auf den Release der V 0.4 *g* . Somit hast du dir auch einen BlogPost bei mir eingefangen *fg* Natürlich erst nach dem release *g*
Knut ich find das auch super, jetzt wo auch alles bei mit funktioniert kann ich echt nur sagen, super schnell Umsetzung und wirklich klasse. Man kann ja auch bei den Einstellungen nichts falsch machen von daher, genau das richtige für mich
So, habe es nun auch bei mir eingebaut!
Nettes Plugin – Danke
@Duergy: Die Version 0.4.0 ist seit heute Vormittag offiziell released
@Sven: Vielen Dank für die Blumen
Das ist sehr schön, dass ich da so viel positives Feedback bekomme. Das motiviert definitiv weiter zu machen…
@Jeffrey: Bitteschön
Hey,
nettes Plugin! Macht sich super auf meinem Blog!
Danke dafür!
greetz
funkjoker
@funkjoker: Vielen Dank. Freut mich, wenn das Plugin Anklang findet