Am häufigsten kommentierte Posts zu einem Tag ausgeben mit WordPress

Die Übersichtsseiten zu den verschiedenen Themen dieser Seite wollte ich etwas aufwerten. Dazu sollten die am meisten kommentierten Beiträge eingeblendet werden. Mit ein paar kleinen Zeile ist es leicht möglich, diese Beiträge zu einem bestimmten Tag mit WordPress auszugeben.

Posts zum Tag WordPress nach Anzahl der Kommentare ausgegeben
Posts zum Tag WordPress nach Anzahl der Kommentare ausgegeben

Der englische Beitrag Get Popular Posts In Current Week, Month By Comment Count bildet die Grundlage für den folgenden Code-Schnipsel. Mit ein paar Modifikationen, sprich dem Einbinden der Abfrage des passenden Tags, lassen sich einfach die am meisten kommentierten Artikel zu einem Thema auflisten.

Der gesamte Code zur Ausgabe der Artikel nach Kommentarzahl sortiert

Das folgende Code-Beispiel ist recht einfach aufgebaut und benutzt das bekannte query_posts() mit einigen Parametern:

<ul>
<?php query_posts('post_type=post&posts_per_page=5&tag=WordPress&orderby=comment_count&order=DESC'); while (have_posts()): the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> {<?php comments_number('0', '1', '%');?>}</li>
<?php endwhile; wp_reset_query(); ?>
</ul>

Die einzelnen Parameter aufgeschlüsselt

Mit post_type=post wird bestimmt, was ausgegeben werden soll. Hier sollen nur Posts, also Artikel ausgegeben werden. Denn Seiten können auf dieser Seite nicht kommentiert werden.

posts_per_page=5 Theoretisch könnte man diesen Query auf mehrere Seiten verteilen und man bestimmt hiermit, wieviele Artikel auf einer Seite dargestellt werden sollen.

Mit tag=WordPress wird bestimmt, dass nur Beiträge mit dem Tag WordPress ausgegeben werden sollen. Auf die exakte Schreibweise des Tags ist hier zu achten. Und wer Tags mit Leerzeichen benannt hat, wird höchstwahrscheinlich Probleme bekommen. Abhilfe schafft die Umbenennung der Tags und Trennung der Worte mit einem Bindestrich.

Wonach sollen die ausgegebenen Beiträge sortiert werden? Genau, nach der Anzahl der Kommentare: orderby=comment_count.

Und zwar sollen die Beiträge mit den meisten Kommentaren oben stehen, weshalb so sortiert wird: order=DESC.

Rundherum …

Wer die Ausgabe anpassen möchte, darf sich an die Bearbeitung dieser Zeile machen:

<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> {<?php comments_number('0', '1', '%');?>}</li>

Die Artikel werden als Liste ausgegeben, in denen der Titel des Artikels verlinkt ist und dann die Anzahl der Kommentare als Zahl angegeben wird:

Der Artikeltitel kann als Überschrift ausgegeben werden, Datum und Auszüge des Artikels ausgegeben und natürlich kann auch die Anzahl der Kommentare besonders hervorgehoben werden. Der Gestaltung sind durchaus wenige Grenzen gesetzt.

Mein Wunsch …

Mein Wunsch zur Aufwertung von Tag-Archiven wäre allerdings eine Erweiterung des Scripts: Auf den Seiten einzelner Artikel werden die meist kommentierten Artikel zu einer Auswahl aus bestimmten Tags ausgegeben. Das könnte durchaus interessante Verknüpfungen hervorbringen, wobei mir der Aufwand und auch die Fehleranfälligkeit doch unnötig hoch zu sein scheint.