WordPress: Neueste Artikel bzw. Loop in der Sidebar

Hier folgt ein weiterer WordPress-Artikel, damit es nachher nicht heißt perun.net würde sich in ein Kindle-Weblog verwandeln. 🙂

Worum geht es hier? Bei einer WordPress-Installation wurde gewünscht das in der Sidebar die letzten zwei Artikel einer bestimmten Kategorie aufgelistet werden. An sich ist das kein Problem, da WordPress für so etwas schon Lösungen bietet und zwar in Form von vorgefertigter Widgets.

WordPress-Widgets: Letzte Artikel und RSS

Das Widget Letzte Artikel wäre eine Möglichkeit, allerdings kann man bei diesem Widget keine Kategorie auswählen sondern lediglich angeben wie viele Artikel aufgelistet werden.

Die zweite Lösung wäre ein RSS-Widget. Man nimmt einfach den Feed der jeweiligen Kategorie, bei der WordPress-Kategorie in diesem Weblog wäre dies https://www.perun.net/kategorie/wordpress/feed/ und fügt ihn in das Widget als Quelle ein. Anschließend erscheint so etwas in der Sidebar bzw. dort wo der Widget ausgegeben wird:

WordPress: RSS-Widget in der Sidebar
RSS-Widget in der Sidebar

Das Problem an dieser Ausgabe ist, dass man nur beschränkt Einfluss auf die auszugebenden Elemente hat. Klar, man kann mit CSS einiges erreichen: man kann unter anderem mit .rsswidget {display: none;} die Widget-Überschrift samt dem Icon ausblenden und wie üblich die Elemente stylen. Aber wenn man zum Beispiel möchte, dass das Datum am Ende erscheint dann muss auf eine andere Lösung zurückgreifen.

Extra-Loop in der Sidebar

Im Weblog von Michael Preuß fand ich eine einfache Lösung, wie man ein extra Loop in der Sidebar einbindet. Hier der Code von Michael:

<?php
$myQuery = new WP_Query('showposts=5&cat=1');
while ($myQuery->have_posts()) : $myQuery->the_post();
?>

Hier kommt dein Code...

<?php endwhile; ?>
wp_reset_query();

In meinem Fall sah das ganze dann so aus:

<?php
$myQuery = new WP_Query('showposts=2&cat=3');
while ($myQuery->have_posts()) : $myQuery->the_post();
?>

<h4><?php the_date(); ?><br /><?php the_title(); ?></h4>
<p><?php the_excerpt(); ?></p>
<p class="mehr"><a href="<?php the_permalink() ?>">Mehr</a></p>

<?php endwhile; ?>
wp_reset_query();

Durch die Einbindung des Extra-Loops hat man auch den Zugriff auf die ganzen Funktionen und Template-Tags, die innerhalb eines Loops funktionieren und man kann diese je nach Bedarf mit passenden HTML-Attributen und -Tags und bestücken.

Wir arbeiten seit 20 Jahren mit WordPress und bieten diverse Dienst­leistungen rund um das System an. Kontaktiere uns für weitere Informationen oder für ein Angebot.

Verwandte Beiträge:

7 Kommentare

  1. Hi Perun,

    der Beitrag stammt noch aus einer Zeit, wo ich noch nicht den Plan wie heute hatte.
    Man sollte nach endwhile; wp_reset_query(); einfügen, damit dieses Query nicht noch weitere Queries (zB. in der Sidebar) beeinflusst.

  2. Wordpress Blog on: WordPress: Neueste Artikel bzw. Loop in der Sidebar | MiloRiano: Computers news, tips, guides... sagt:

    […] Read more: WordPress Blog on: WordPress: Neueste Artikel bzw. Loop in der Sidebar […]

  3. Kann man das auch einfach in ein Textwidget einfügen oder gibts ein Plugin für RSS Code in der Sidebar?

  4. Habe es bisher nicht ausprobiert, welcher Code muss nun als Textwidget in die Sidebar?

Kommentare sind geschlossen.