WordPress – Zufallsbeitrag auf der Startseite anzeigen lassen

In WordPress kann man auch ohne Plugin zufällig einen Beitrag auswählen und auf der Startseite anzeigen lassen. Für die Anzeige der Zufallsbeiträge benutzt man die Funktion query_posts. Wer WordPress als CMS verwendet, verwendet dazu am besten eine angepasste statische Startseite.

Für den Zufallsbeitrag die Funktion innerhalb des WordPress Loop einbauen:

Zufallsartikel mit Überschrift und kurzem Auszug nur auf der WordPress Startseite:

<?php if ( is_home() && !is_paged() ) { ?>
<?php query_posts(array('orderby' => 'rand', 'showposts' => 1));
if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt() ?>
<?php endwhile; endif; ?>
<?php } ?>

Einen zufälligen Beitrag mit Überschrift und kurzem Auszug auf der WordPress Startseite und den darunterliegenden Index-Seiten …/page/2 …/page/3 usw. anzeigen lassen:

<?php if ( is_home() ) ?>
<?php query_posts(array('orderby' => 'rand', 'showposts' => 1));
if (have_posts()) : while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt() ?>
<?php endwhile; endif; ?>

Andere Anzahl der Beiträge – wie zum Beispiel 5 zufällige Artikel – anzeigen lassen:

<?php query_posts(array('orderby' => 'rand', 'showposts' => 1));  

ändern in

<?php query_posts(array('orderby' => 'rand', 'showposts' => 5));

Das ganze funktioniert in WordPress auch mit einer statischen Startseite.

Dazu im Ordner des WordPress Themes eine neue Datei names “front-page.php” erstellen. Diese Datei ist seit WordPress 3.0 verfügbar und wird automatisch geladen, wenn sie im Theme Ordner besteht. Angaben in der front-page.php “überschreiben” sozusagen die Angaben in der index.php.

Wenn die Startseite sonst vom Aufbau her gleich bleiben soll, fügt man einfach den kompletten Quellcode der index.php in die neue Datei front-page.php ein und setzt den query_posts Codeschnipsel an die entsprechende Stelle mit Hilfe von <?php if ( is_front_page() ) { ?>.

Das Ganze kann man natürlich noch beliebig variieren und bei Bedarf auch in Seitentemplates oder die Sidebar einbauen.

Schreibe einen Kommentar