Anzeige der meist kommentierten Artikel ohne Plugin

Wer die meist kommentierten Artikel – most commented posts – in seinem Blog anzeigen möchte, greift in der Regel auf eines der vielen Plugins zurück. Ein Plugin braucht es für die meist kommentierten Artikel aber nicht wirklich, da die Ausgabe dieser auf einer Standard Abfrage unserer Datenbank basiert, die auch einfach in die entsprechende Theme Datei eingebunden werden kann.

So habe auch ich in meiner sidebar.php unterhalb der letzten Kommentare die meist kommentierten Artikel eingebunden (siehe “heiß diskutierte Beiträge”). Wie Ihr dort sehen könnt, wurde das erste Mal die 100 Kommentare Marke eines Beitrags überschritten. Ich bin ehrlich gesagt total baff und natürlich auch begeistert darüber, dass Ihr meine lieben Kommentatoren Euch so sehr zu Unterhaltungen auf meinem Blog hingezogen fühlt. Vielen Dank an dieser Stelle an alle!

Nun aber zum Code für die Anzeige der meisten kommentierten Artikel, den ich Euch in zwei Versionen vorstellen möchte, einmal mit der Ausgabe des gesamten Titels und einmal mit der Ausgabe eines gekürzten Titels, was für den ein oder anderen von Euch interessant sein könnte, der wie ich oft längere Titel verwendet.

5 meist kommentierte Artikel mit dem gesamten Titel:

<ul>
<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 5");
   foreach ($result as $post) {
   setup_postdata($post);
   $postid = $post->ID;
   $title = $post->post_title;
   $commentcount = $post->comment_count;
   if ($commentcount != 0) { ?>
      <li>(<?php echo $commentcount ?> Kommentare): <a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>"><?php echo $title ?></a> </li>
<?php } } ?>
</ul>

5 meist kommentierte Artikel mit gekürztem Titel:

<ul>
<?php $result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , 5");
   foreach ($result as $post) {
   setup_postdata($post);
   $postid = $post->ID;
   $title = $post->post_title;
   $neuer_title = substr(trim($post->post_title), 0, 47) . '...';
   $commentcount = $post->comment_count;
   if ($commentcount != 0) {
      if (strlen($post->post_title) > 47) { ?>
         <li>(<?php echo $commentcount ?> Kommentare): <a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>"><?php echo $neuer_title ?></a> </li>
      <?php } else { ?>
         <li>(<?php echo $commentcount ?> Kommentare): <a href="<?php echo get_permalink($postid); ?>" title="<?php echo $title ?>"><?php echo $title ?></a> </li>
<?php } } } ?>
</ul>

Bei der Zahl 47, die angibt, ab dem wievielten Zeichen der Titel gekürzt werden soll, könnt bzw. müsst Ihr natürlich die für Euren Blog relevante Zahl angeben, damit der Titel in einer Zeile erscheint und nicht auf mehrere Zeilen aufgeteilt wird.

Wer mehr als 5 Artikel ausgeben möchte, der ersetzt die Zahl 5 am Ende der dritten Zeile mit der gewünschten Anzahl.

Ich denke sonst gibt es zu dieser relativ einfachen Abfrage nicht mehr viel zu sagen, oder habt Ihr noch Fragen dazu?

= Werbung
| |
Trackback URL: http://www.crazytoast.de/anzeige-der-meist-kommentierten-artikel-ohne-plugin.html/trackback/
Ähnliche Beiträge:
↑ Ganz nach oben springen ↑
↓ zum kommentieren springen ↓
17 Kommentare:
  1. sascha schrieb am 5. August 2009 um 09:51 Uhr:
    # 1

    Schon wieder ein Teil deines Skripts? Ich bin erstaunt, dass Du alles so offen darlegst. Aber cool, wieder was neues :-)

    Bin gestern nicht wirklich weiter gekommen. Das Alte “Auge-Streichholz” Problem :-)

  2. anne schrieb am 5. August 2009 um 12:26 Uhr:
    # 2

    Tanja, sag mal, kannst du Gedanken lesen. Genau nach der Anzeige mit gekürzten Titel bin ich auf der Suche. Gerade wenn man lange Titel hat, wird es bei vielen anderen Lösungen immer so unübersichtlich. Danke!

  3. Mac_BetH schrieb am 5. August 2009 um 14:29 Uhr:
    # 3

    Hallo Tanja,

    wie immer ein toller Artikel und eine noch bessere Dokumentation mit Coding!

    Danke dafür!

    Gruß

    Matthias

  4. Tanja schrieb am 5. August 2009 um 15:08 Uhr:
    # 4

    @Sascha: Warum denn nicht ;-) Schließlich kann ja jeder was davon haben, wenn es jemand zufällig gerade auch braucht…

    @Anne: Nach gekürzten Titeln hab ich vor einiger Zeit auch ewig gesucht :-) Seitdem ich sie habe, möchte ich sie nicht mehr hergeben…

    @Matthias: Danke :-)

  5. Daniel schrieb am 5. August 2009 um 16:28 Uhr:
    # 5

    Was würde ich ohne deine Code Schnipzel machen :) dabei habe ich es noch nicht einmal geschafft den anderen Code anzuschauen – dafür auch dankeschön ;)

  6. Tanja schrieb am 6. August 2009 um 07:45 Uhr:
    # 6

    Danke Daniel :-)

  7. anne schrieb am 6. August 2009 um 11:04 Uhr:
    # 7

    @Tanja: Ja ich schau mal, bin grade dabei, deinen Code einzubauen. Wenn du entferntes Schreien hörst, dann ist was schief gegangen. Um an deinen neuesten Artikel anzuknüpfen, jetzt wäre wirklich ein guter Zeitpunkt für mich, mal etwas abzuschalten. Ich bin mit den Nerven am Ende. Heut nacht werde ich vermutlich von Code-Salat träumen.

  8. sascha schrieb am 6. August 2009 um 11:07 Uhr:
    # 8

    Codesalat ist toll. Meine Träume fangen Dank Tanja jetzt auch so an:

  9. sascha schrieb am 6. August 2009 um 11:08 Uhr:
    # 9

    Lol mein Code ist weg. Na, Blog gesprengt? :-)

  10. anne schrieb am 6. August 2009 um 13:15 Uhr:
    # 10

    @Tanja: Nein, dieser Code schien einfach zu sein, … erstaunlicherweise, vielleicht habe ich auch nur irgendwas entscheidendes übersehen ;-)

    Allerdings stößt mir aber immer noch der Cache-Salat mit CommentLuv-Dressing bitter auf. Der Teil, den ich aus deiner Datei kopieren muss, verringt aber bereits stündlich um 1 bis 2 Zeilen ;-)

  11. Tanja schrieb am 6. August 2009 um 13:10 Uhr:
    # 11

    @Daniel: Klar, die Werbung gibt es ja auch ;-)

    @Anne: Bis jetzt habe ich noch nichts gehört oder habe ich nur meine Lauscher nicht aufgesperrt? Ich hoffe Du hattest Erfolg und gönnst Dir dann etwas Ruhe und Erholung!

    @Sascha: Da war kein Code dabei *schnüffel* :-(

  12. Tanja schrieb am 7. August 2009 um 17:47 Uhr:
    # 12

    Ich sehe Du bastelst zur Zeit eh ziemlich viel rum ;-) Ich hoffe den Cache Salat kriegst Du auch noch in den Griff ;-) und den Strand dabei nicht vergessen… *ich auch will Meer und Strand*

  13. Marcus schrieb am 12. März 2011 um 12:41 Uhr:
    # 13

    Bei mir sind die Meist kommentierten Artikel schon Themeseitig mit dabei.

    Was ich aber gerne einbauen würde, aber irgendwie absolut nicht gebacken bekomme, ist einen Ausschnitt aus dem Artikel mit einzubauen.

    Ich weiß, das geht mit excerpt. Aber da hört es sich dann auch schon wieder auf

  14. Tanja schrieb am 13. März 2011 um 07:35 Uhr:
    # 14

    @Marcus: Ja, das geht mit <?php the_excerpt(); ?> Musst Du direkt in die Funktion des Themes mit einbauen.
    Ich wollte demnächst mal einen Artikel schreiben, wie man mit the_excerpt mit unterschiedlichen Längen arbeiten kann.

  15. Marcus schrieb am 13. März 2011 um 10:20 Uhr:
    # 15

    Danke für die Antwort.

    Soweit ist mir das klar.

    Mein Problem ist der Code drumherum, der bei mir wie folgt aussieht:

    $ output .= $ before . '<a href="' . $ permalink . '" title="' . $ post_title.'"&gr;' . $ post_title . '</a> (' . $ comment_count.')' . $after;

    (Natürlich ohne die Leerzeichen nach den $)

    Und da das excerpt unterzubringen bring ich nicht hin :(

  16. Marcus schrieb am 13. März 2011 um 10:22 Uhr:
    # 16

    Da fehlt ein Teil des Codes

    $output .= $before . '<a title="' . $post_title.'">' . $post_title . '</a> (' . $comment_count.')' . $after;

  17. Tanja schrieb am 13. März 2011 um 10:48 Uhr:
    # 17

    @Marcus: Sorry, da kann ich Dir so nicht helfen, denn das sind alles nur Variablen, deren Inhalte hieraus nicht hervorgehen.

Einen Kommentar dazu schreiben:

Dieser Artikel ist älter als 30 Tage! Aufgrund des hohen Spam Aufkommens wurde die Möglichkeit Kommentare mit Link zu hinterlassen deaktiviert!

Bitte beachtet die Datenschutzhinweise.

Ich behalte mir das Recht vor, Kommentare entsprechend zu löschen oder editieren!


Kommentare abonnieren ohne selbst einen Kommentar abzugeben: