WordPress & Webwork

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.

7 Reaktion(en)

  1. Micha

    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. Pingback: Wordpress Blog on: WordPress: Neueste Artikel bzw. Loop in der Sidebar | MiloRiano: Computers news, tips, guides...

  3. Pingback: WordPress: letzte Artikel einer Kategorie | WordPress & Webwork

  4. Pingback: Kategorie-Artikel in Seitenleiste von Wordpress per Plugin ausgebenblog@lewumpy

  5. Pingback: Artikel einer Kategorie in der Seitenleiste von Wordpress per Plugin ausgeben :: blog@lewumpy

Die Kommentare in diesem Beitrag sind geschlossen.

✉ WordPress-Newsletter ✉

Tipps und News als E-Mail in deinem Postfach? Dann abonniere einfach den ersten deutsch­sprachigen Word­Press-Newsletter:


Der Newsletter ist hinterher jederzeit abbestellbar.

Eintragen!