Kommentaranzahl anzeigen ohne Plugin

Kommentaranzahl anzeigen

Vor einiger Zeit hatte ich mich von der Footer-Sidebar und somit auch von der Liste über die “treuesten Topkommentatoren” getrennt. Darin waren jene 10 Kommentatoren aufgelistet, die die meisten Feedbacks über den gesamten Zeitraum meiner Blogaktivität abgeben haben.
Ich fand das recht praktisch, um mir einen Eindruck über die Anzahl der jeweils abgegebenen Kommentare zu verschaffen.

In der Sidebar werden zwar die Topkommentatoren der letzten 30 Tage angezeigt, aber ein wenig fehlte mir eine Gesamtanzeige. Eine weitere Liste wollte ich jedoch nicht dort einfügen. Daher begab ich mich auf Recherche nach einer manuellen Umsetzung, um neben dem Namen jedes Kommentators die bisher abgegebene Kommentaranzahl anzeigen zu lassen.

Fündig geworden bin ich in einem Beitrag bei Sparklette Duo.

Einbau der Funktion

Der Code war schon einmal eine große Hilfe. Allerdings gab es bei dieser Umsetzung ein kleines Manko. Bei einem einzigen bisher abgegebenen Kommentar erschien “1 Kommentare“.

Das störte mich und daher begab ich mich wieder auf die Suche und stieß auf einen weiteren Beitrag für die Umsetzung ohne Plugin.

"Ein-Kommentar"-AnzeigeSehr schön, denn mit dieser Umsetzung wurde korrekt “1 Kommentar” ausgegeben und kam daher meinen Wünschen schon etwas näher. Allerdings störte mich hierbei wiederum, dass bei den Trackbacks “0 Kommentare” angezeigt wurde. Ist ja eigentlich nur eine Kleinigkeit, aber ich wollte erreichen, dass bei Trackbacks/Pingbacks gar kein Kommentarzähler erscheint.

Daher änderte ich noch ein wenig den Code in der Weise, dass einerseits bei einem Kommentar “1 Kommentar” und bei den Trackbacks keine Anzeige erscheint.

Dieser Code erfüllt nun alle meine Wünsche:

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 Kommentar)';
    }
	if ( $count == 0) {
        echo ' ';
	}		
	if ( $count >> 1){
        echo ' (' . $count . ' Kommentare)';
    }	
}
?>

Verwendung als Modul in Toolbox

Trackbacks ohne Anzeige

Er wird in die functions.php des Themes eingefügt. Ich persönlich verwende Toolbox und habe dafür ein Modul angelegt. Dieses (ich habe es commentscount.php benannt) sieht dann so aus:

 

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 Kommentar)';
    }
	if ( $count == 0) {
        echo ' ';
	}		
	if ( $count >> 1){
        echo ' (' . $count . ' Kommentare)';
    }	
}

Einbau für die Anzeige

Um nun die Anzeige neben dem Autor zu erzielen, wird der folgende Code an gewünschten Steller hinzugefügt :

<div class="commentcount"><?php commentCount(); ?></div>

Einfügen musste ich ihn in die functions.php meines Themes, allerdings ist mein “Smoky” ein wenig anders geartet. ;-) Ich gehe davon aus, dass dieser bei einem Großteil der WordPress-Blogs in die comments.php eingefügt werden muss.

Hier ein Beispiel, wo ich den Befehl eingebaut habe:

<div class="comment_author"><?php echo get_comment_author_link(); ?></div>
<div class="commentcount"><?php commentCount(); ?></div>
<div class="commentmetadata"><cite>
	<a href="#comments-<?php comment_ID() ?>"> sagt am <?php comment_time('d.m.Y') ?> um <?php comment_time('H:i')?> Uhr </a></cite>

Für eine ansehnliche Darstellung habe ich die Datei style.css meines Template-Verzeichnisses um folgende Werte ergänzt:

.commentcount{
display:inline;
font-family:Times,Verdana,Helvetica,sans-serif;
font-style:italic;
font-size:16px;
color:#8F8F8F;
margin: 0 0 0 20px
}

Viel Spaß beim Einbau.

Hinweis
Dieser Beitrag bezieht sich auf Codierungen oder/und Funktionen, die ich noch in meinem alten Template umgesetzt habe. Es ist möglich, dass sie in dem aktuellen Blog-Theme nicht übernommen wurden und somit die Darstellung bzw. Funktion nicht mehr existiert.

Die Autorin:

Sylvi

Meine Beiträge beinhalten eigene Erfahrungen über Soft- und Hardware, Social Media und die ich als WordPress-Bloggerin und Joomlanerin gesammelt habe. Zudem widme ich mich dem schönen Hobby "Fotografie".

26 Kommentare

  • Hallo,

    gar nicht so schlcht die Idee, gerade wenn man viel Stammuser hat, die gern mal einen Kommentar abgeben. Und wichtig ist, man spart sich das Plugin. Ist ja eh besser, weniger Plugins zu nutzen, auch wenn es manchmal nicht ausbleibt.

    Guter Hinweis…vielleicht übernehme ich das auch noch nachher. Gleich mal gespeichert. Danke.

    Gruß

    • Hallo Kati,

      ich versuche mittlerweile immer erst alles manuell umzusetzen. Nur wenn es gar nicht anders geht oder ein Plugin wesentlich komfortablere Funktionen beherrscht, greife ich darauf zurück.
      Bin gespannt, ob es bei Dir geklappt hat. :-)

      Gruß Sylvi

        • Hallo Mika!

          Jedes installierte Plugin bläht das System und vor allem die Datenbank auf. Es wird vom System immer angefragt, auch wenn es gar nicht gebraucht wird. Jede Anfrage braucht Zeit, und die verlängert das Laden der Webseite.

          Eigenen Code kannst Du so programmieren / einsetzen, das er wirklich nur da genutzt wird, wo Du es willst.

          Beispiel: Du installierst ein Plugin, das nur auf der Startseite genutzt werden soll. Das System ruft es aber auch auf, wenn sich der Leser in einer Artikelseite befindet. Der eigene Code kann so eingebaut werden, das er wirklich nur abgefragt wird, wenn der Leser sich auf der Startseite befindet.

          • @Marcus Danke, ich hätte es besser nicht formulieren können. :-)

            @Mika Ich finde sie nicht schlimm. Im Gegenteil, ich habe natürlich auch einige wunderbare Plugins in diesem Blog installiert. Aber wenn ich es vermeiden kann, mit einem kleinen Codeschnipsel ein Plugin zu umgehen, dann setze ich Funktionen lieber auf diese Weise um. Manche Plugins beinhalten hin und wieder zusätzliche Funktionen, die ich gar nicht benötige. Mit einem individuellen Code kann ich genauer auf meine Bedürfnisse eingehen.

            Gruß Sylvi

  • Hallo Sylvi,

    was wird da genau abgefragt, Name oder E-Mail?
    Frag nur deshalb, da bei mir die Zahl 9 steht, was vermutlich mit der Mail-Adresse zusammenhängt.

    Lieben Gruß und einen schönen Feiertag wünscht Dir
    hansen

    • Hallo hansen,

      es wird die E-Mail-Adresse abgefragt. Ich denke, wenn der Name verwendet würde, wäre es auf meinen Blogs mit Problemen verbunden, spätestens dann, wenn es mindestens zwei Kommentatoren mit gleichem Namen gibt. Ich hatte schon in der Vergangenheit mit einem Plugin zur Anzeige der Topkommentatoren Probleme, denn es hatten zwei Daniels kommentiert. Und ich bin mir noch nicht mal mehr sicher, ob ich die Anzeigeeinstellungen per Namen konfiguriert hatte.

      Eine anderen Möglichkeit wäre noch die Abfrage durch die Webseiten-Url, allerdings kommentieren auch schon mal Besucher und tragen keine Url ein.

      Ja schade, dass nun die Anzahl bei Dir “verfälscht” durch die verschiedenen E-Mail-Adressen angezeigt wird, da Du ja eine meiner fleißigsten Kommentatorinnen hier bist. :-)

      Ich wünsche Dir auch einen erholsamen Feiertag,
      lieben Gruß Sylvi

  • Hallo Sylvi!

    Also mit Ping- und Trackbacks dürfte es eigentlich keine Probleme geben, da Du sie ja explizit ausschließt.

    Die zweite If Schleife ==0 könntest Du dir meines Wissens nach auch sparen, und somit Abarbeitungszeit. Denn jemanden mit 0 Kommentaren wird es nicht geben. Kommentiert jemand zum ersten mal auf (D)einem Blog, ist es immer der 1. Kommentar, nie der 0. ;)

    • Hallo Marcus,

      Du hast recht. Ich habe den reduzierten Code – also ohne

      if ( $count == 0) {
              echo ' ';
      	}	

      – im Testblog ausprobiert und er funktioniert ebenfalls. :-)

      Gruß Sylvi

  • Hey,…

    also momentan will es nicht, es ist glaube ich auch nicht ganz nachvollziehbar. Ich versuche es zwar gerade, aber irgendwo klemmt es noch… Habe auch schon den Artikel zur Hilfe genommen, den Du oben verlinkt hast, aber auch das ist noch nicht das, was es soll… *aarrgghhh*

    Ich teste derweil mal weiter… ;-)

      • Hallo,

        ja allein schon die Toolbox löst eine Fehlermeldung aus, wenn ich diese speichere. Nach dem ich die Rechte in der functions.php angepasst habe, löst das Speichern dann eine Fehlermeldung aus.

        Wir nutzen WP zwar auch schon über Jahre und sind auch im Coden erfahren, aber leider will es nicht so, wie ich oder wir uns das vorstellen. Der Fehler selbst wird aber immer wieder in der functions.php ausgelöst.

        Ich schau mal, ob das auch anders geht…

        Danke aber dennoch der Nachfrage… ;-)

        • Ah okay, Du verwendest auch Toolbox. Wenn Du jetzt nicht geschrieben hättest, dass ihr erfahren im Coden seid, hätte ich sonst geraten, die äußeren Zeichen “” bei Einfügen in die functions.php aus dem Beispielscode zu entfernen.

          Tut mir leid, dass es nicht auf Anhieb klappt. :-(

        • Hallo,

          bis eben gerade haben wir Toolbox nicht genutzt, aber nachdem ich sie installiert habe, gab es den großen Crash. Ich versuche es nochmal ohne Toolbox…

          Ich finde es auch seltsam, dass es nicht geht… eigentlich ist es ja logisch aufgebaut… Wir testen weiter…

        • So,…

          habe jetzt alles logische versucht, aber jedes mal tritt folgende Fehlermeldung ein:

          …/wp-includes/pluggable.php on line 876

          Führt also zu keiner Lösung. Leider. Kennst Du evtl. ein Plugin, was dem gleicht? Auch wenn es ohne Plugin besser wäre? Vielleicht geht das ja. Im Prinzip ist die Funktion ja auch nur ne Spielerei, aber dennoch sieht es gleich besser aus, wenn es denn laufen würde….

          Gruß

  • Hallo,

    danke für den Tipp, werde mich wohl später nochmal damit beschäftigen, da allein schon die comments.php anders aufgebaut ist, als andere.

    Falls es nicht geht, dann ist es auch nicht so schlimm….

    Dennoch vielen Dank.

    Gruß

  • Hallo Markus,

    dieser Fehlercode erscheint nach dem speichern im Theme, wenn ich die Dateien wie functions.php oder comments.php bearbeitet habe. Es wird auch nichts weiteres angezeigt.

    Gruß

  • Hallo Sylvi,

    vielen Dank erstmal für die Info.
    Ich werde auf jeden Fall darüber nachdenken, da ich schon viele Plugins auf einigen Seiten habe, die die Seite einfach “schwerer” und komplizierter machen. Früher hatte ich große Probleme mit den Plugins, jetzt sind es immerhin weniger geworden. Aber Probleme treten von Zeit zu Zeit auf.

    MfG
    -Mario

    • Hallo Mario,

      danke für Dein Feedback. Als ich anfing zu bloggen und mich mit WordPress überhaupt nicht auskannte, war ich froh, dass es eine so umfangreiche Palette an Plugins für die unterschiedlichsten Funktionen gibt. Mein Dank gilt also allen Entwicklern, die viel Zeit und Wissen uns Bloggern meist kostenlos oder für wenig Geld zur Verfügung stellen.

      Die Höchstzahl meiner installierten (und aktivierten) Plugins belief sich vor einer Weile noch auf ~ 34. Derzeit sind insgesamt 25 installiert, davon 22 aktiviert, z. B. verwende ich “WP CleanFix” nur bei Bedarf.
      Das dickste Plugin (gemessen mit “P3 Plugin Profiler”) ist derzeit Jetpack (83 %).

      Je mehr Plugins installiert sind, desto höher ist das Risiko, dass bei einem WordPress-Update Probleme auftreten können. Aber glücklicherweise war ich davon bisher nicht betroffen. :-).

      Gruß Sylvi

  • Hallo Sylvi,

    vielen Dank erstmal für die Info.
    Ich werde auf jeden Fall darüber nachdenken, da ich schon viele Plugins auf einigen Seiten habe, die die Seite einfach “schwerer” und komplizierter machen. Früher hatte ich große Probleme mit den Plugins, jetzt sind es immerhin weniger geworden. Aber Probleme treten von Zeit zu Zeit auf.

    MfG
    -Mario

  • Vielen Dank für den Code! Hatte vorher das Plugin von Ocean90 verwendet was aber seit 3.6 nicht mehr funktioniert nun mit deiner Funktion konnte ich das Problem beheben.