Die meist kommentierten WordPress-Beiträge der letzten 30 Tage anzeigen
Um möglichst viele Besucher auf heiß diskutierte Beiträge des Blogs aufmerksam zu machen, lohnt es sich einen Bereich mit „beliebten Artikeln“ einzubinden. Mit den Custom Queries von WordPress ist es möglich Beiträge nach der Anzahl der abgegebenen Kommentare zu sortieren und in ihrer Anzahl zu begrenzen. Mit dieser Technik werden jedoch auch veraltete, aber viel kommentierte Artikel berücksichtigt. Um nur aktuelle Trends abzubilden muss daher ein Zeitfenster definiert werden.
Code-Snippet
Mit dem folgenden Code-Snippet ist es möglich zunächst nur die Beiträge der letzten 30 Tage auszulesen und anschließend nach der Anzahl der abgegebenen Kommentare zu sortieren. Die Anzahl der dargestellten Beiträge wird auf 5 beschränkt.
Im letzten Schritt wird der WordPress-Loop gestartet und die Beiträge inkl. Beitragsbild, Titel und Verlinkung innerhalb einer ungeordneten Liste ausgegeben.
<ul>
<?php
function filter_where($where = '') {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'"; // Zeitfenster auf 30 Tage begrenzen
return $where;
}
add_filter('posts_where', 'filter_where');
// WordPress Query
$args = array(
'posts_per_page' => 5,
'order' => 'DESC',
'orderby' => 'comment_count'
);
query_posts( $args );
// WordPress-Loop
while (have_posts()): the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_post_thumbnail( 'thumbnail' ); ?><?php the_title (); ?></a>
</li>
<?php endwhile;
wp_reset_query();
?>
</ul>
Das Snippet ist bei mir im Einsatz und zeigt in der Sidebar die aktuellen Trends an.
Der Code in diesem Artikel basiert auf einem Beitrag von wpmu.org
Man sollte den Filter danach allerdings wieder rausnehmen per remove_filter.
Und wie bekomme ich das ganze dann so hin das ich dieses Snippet nicht komplett in die Sidebar packen muss?
@Stefan: Das ist ja nur ein leicht modifizierter WordPress-Loop. Der sollte dann schon so in die Sidebar. Was spricht denn dagegen?