Mit Schlagwort getaggte Beiträge als Liste in Post ausgeben
In WordPress kann man problemlos alle mit einem bestimmten Tag versehenen Beiträge in einer Liste ausgeben lassen, schwieriger wird es allerdings wenn innerhalb einer Seite oder in einem Artikel die neuesten x Artikel gelistet werden sollen, die mit einem bestimmten Tag versehen wurden.
Genau diese Lösung wurde aber benötigt, um eine sich selbst aktualisierende Liste von Beiträgen auf einer Seite darzustellen; etwas Recherche brachte mich zu einem interessanten Lösungsansatz: hier wird eine Liste von Tags erstellt und gleichzeitig mit den aktuellsten Artikeln die mit dem jeweiligen Schlagwort versehen wurden ausgegeben (das Ganze MUSS außerhalb des Loops im Template platziert werden):
<?php
$noOfTags = 10;
$noOfPosts = 4;
$cloudRight = get_tags("orderby=count&order=DESC&number=$noOfTags");
foreach((array)$cloudRight as $tagRight) : ?>
<?php
$postsRight = new WP_Query();
$postsRight->query("tag={$tagRight->slug}&showposts=$noOfPosts"); ?>
<?php if ( $postsRight->have_posts() ) :?>
<dl>
<dt><?php echo $tagRight->name ?></dt>
<?php while ( $postsRight->have_posts() ) : $postsRight->the_post(); ?>
<dd><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></dd>
<?php endwhile;?>
</dl>
<?php endif; ?>
<?php unset($postsRight); endforeach; ?>
Um nur die aktuellesten Artikel eines spezifischen Tags zu listen muss diese Lösung etwas umgeschrieben werden:
<?php
$postsRight = new WP_Query();
$postsRight->query("tag=tag-slug&showposts=5");
?>
<?php if ( $postsRight->have_posts() ) :?>
<ul>
<?php while ( $postsRight->have_posts() ) : $postsRight->the_post(); ?>
<li><a title="<?php the_title(); ?>" href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile;?>
</ul>
<?php endif; ?>
<?php unset($postsRight);
?>
Durch das Anpassen des Tag-Slugs werden die aktuellsten 5 Beiträge, die mit diesem Schlagwort versehen wurden, im Template aufgerufen.
PS: Das gleiche Ergebnis lässt sich auch mit der Einbettung des RSS-Feeds des jeweiligen Schlagworts erreichen.



No Comments RSS Kommentare
Add a Comment