Michael Oeser - Fotografie, Film, Webdesign - Logo

WordPress Adventskalender Tür 7 – Vorschau auf kommende Beiträge per Shortcode ausgeben

Die gestrige Kalendertür hat erklärt, wie man eine Vorschau auf geplante Beiträge ausgeben kann. Dazu muss man aber ein Bisschen Code in eine Template-Datei oder ein Textwidget platzieren. Das ist nicht schlimm, aber evtl. will man sowas einfach per Shortcode in einem Artikel ausgeben. So funktioniert´s.

Den folgenden Code platziert man mal wieder in der functions.php des aktiven Themes (oder in einem Plugin, aber dazu später mehr).

function show_future_posts( $attr, $content = null ) {

	extract(shortcode_atts(array(
		'number'	=> -1,
		'order'		=> 'DESC'
	), $attr));

	echo '
      ‚; $my_query = new WP_Query( ‚post_status=future&order=‘ . $order . ‚&showposts=‘ . $number ); $format = ‚

    • %s

      %s

‚; if( $my_query->have_posts() ) { while( $my_query->have_posts() ){ $my_query->the_post(); printf( $format, get_the_time(‚j. F Y‘), the_title( “, “, false ) ); } } else { echo _e(‚No posts found‘ ); } wp_reset_query(); echo ‚

';

}

add_shortcode( 'future-posts', 'show_future_posts' );

Um nun die Vorschau in einem Artilkel auszugeben platziert man eifach folgenden Shortcode an der Stelle im Artikel, wo die Vorschau erscheinen soll.

[future-posts]

Will man noch etwas mehr Kontrolle haben, kann man dem Shortcode noch zwei Parameter mitgeben. Nämlich „order“ für die Reihenfolge (Aufsteigend oder Absateigend) und „number“ für die Anzahl der auszugebenden Vorschauartikel.

[future-posts order=ASC number=5]

Die Ausgabe kann man natürlich mit ein Bisschen CSS noch an die eigenen Wünsche anpassen.

Danke an Ralf Albert für die Unterstützung beim Erstellen des Shortcodes.