In WordPress hat man über Widgets die Möglichkeit die letzten Artikel einer Kategorie aufzulisten, das ist easy und Standard.
Aber was tun, wenn man eine statische Seite als front-page (bzw. home) haben will, in der nach dem eigentlichen Content die Liste der letzten Artikel, z.B. aus der Kategorie News, erscheinen soll? Auch das ist natürlich mit WordPress machbar und auch nicht kompliziert, wenn man weiß wie ;-)
Wir gehen davon aus, dass Ihr Euch schon mit der Template-Struktur von WordPress auseinander gesetzt habt und ebenfalls schon eine front-page.php (bzw. home.php) angelegt habt in der der Content ausgegeben wird.
Um nun, nach dem eigentlichen Loop (um den Content der statischen Seite auszugeben), die Artikel auszugeben braucht Ihr in etwa folgenden Code, den Ihr nach dem vorhandenen <?php endwhile; ?> aber vor dem <?php endif; ?> platziert. Natürlich nur, wenn soweit vorhanden.
...
<?php endwhile; ?>
<div class="news_teaser">
<p>Aktuelle News</p>
<?php $news_query = new WP_Query('category_name=news&posts_per_page=10');
while ( $news_query->have_posts() ) : $news_query->the_post(); ?>
<?php the_excerpt()?>
<?php endwhile; ?>
</div>
<?php endif; ?>
...
Hier eine kurze Erklärung der Zeilen:
- in Zeile 2 haben wir zur besseren Übersicht den <?php endwhile; ?> aus dem Loop für den Content mit aufgeführt.
- in Zeile 4 und 5 wird ein öffnender DIV (inkl. class) und die Überschrift platziert.
<div class="news_teaser"> <p>Aktuelle News</p>
- in Zeile 6 und 7 wird bestimmt aus welcher Kategorie die Artikel gezogen werden sollen, sofern welche vorhanden sind, und wieviele angezeigt werden sollen. Es wird also ein neuer Loop mit while aufgemacht.
<?php $news_query = new WP_Query('category_name=news&posts_per_page=10'); while ( $news_query->have_posts() ) : $news_query->the_post(); ?>
- in Zeile 8 wird ein Einleser ausgegeben
<?php the_excerpt()?>
- in Zeile 9 wird der Loop, der mit while aus Zeile 7 geöffnet wurde, geschlossen
<?php endwhile; ?>
- und in Zeile 12 steht der endif aus dem eigentlichen Loop für den Content.
<?php endif; ?>
Leider nicht mehr aktuell. Wenn ich das mit der aktuellen Version ausprobiere, wird das Template nicht mehr aktzeptiert
new WP_Query() ist nicht veraltet. Schau dazu mal in den Codex:
https://codex.wordpress.org/Class_Reference/WP_Query
Super Tipp, das muss ich direkt mal testen. Hab es bisher zwar noch nicht benötigt aber vielleicht für künftige Projekte. Werde mir deine Website mal speichern. Mach weiter so.