Kurz gesagt: Im Block-Editor fügst du auf der Seite den Block „Abfrage-Loop“ (englisch Query Loop) ein, stellst in der Seitenleiste unter „Filter“ die gewünschte Kategorie ein und wählst ein Layout. Für eine schlichte Liste reicht der Block „Neueste Beiträge“ mit Kategoriefilter. Oft ist es aber am einfachsten, direkt auf das Kategoriearchiv zu verlinken, das WordPress für jede Kategorie automatisch anlegt.
Weg 1: Kategoriearchiv verlinken (ohne Aufwand)
Jede Kategorie hat bereits eine eigene Seite mit allen Beiträgen, zum Beispiel example.com/category/rezepte/. Du findest die Adresse unter Beiträge → Kategorien über den Link „Anschauen“. Soll die Kategorie im Menü erscheinen, fügst du sie im Menü- oder Navigationsblock direkt als Kategorie hinzu. Titel und Beschreibung der Kategorie zeigen die meisten Themes oben auf der Archivseite an. Das Wort category in der Adresse kannst du ändern oder entfernen, siehe Kategoriebasis aus der URL entfernen.
Weg 2: Block „Abfrage-Loop“ auf einer Seite
Willst du eine eigene Seite mit Einleitungstext und darunter den Beiträgen einer Kategorie, nutzt du den Abfrage-Loop:
- Öffne die Seite im Editor und schreib deinen Einleitungstext.
- Klicke auf das Plus-Symbol, suche nach „Abfrage-Loop“ und füge den Block ein.
- Wähle eine Vorlage, zum Beispiel „Titel und Datum“ oder ein Raster mit Beitragsbild.
- Deaktiviere in der Seitenleiste die Option „Abfrage vom Template übernehmen“, falls sie aktiv ist. Nur dann kannst du selbst filtern.
- Klicke unter „Filter“ auf das Menü mit den drei Punkten, aktiviere „Taxonomien“ und trag bei „Kategorien“ die gewünschte Kategorie ein.
- Stell Anzahl der Beiträge pro Seite und Sortierung ein. Mit dem inneren Block „Seitennummerierung“ blätterst du durch ältere Beiträge.
Die Blöcke innerhalb des Loops (Titel, Auszug, Datum, Beitragsbild) kannst du beliebig anordnen und gestalten. Die Anzeige aktualisiert sich automatisch, sobald du einen neuen Beitrag in der Kategorie veröffentlichst.
Weg 3: Block „Neueste Beiträge“
Für eine kompakte Liste, etwa „Die fünf neuesten Rezepte“ in einer Seitenleiste, ist der Block „Neueste Beiträge“ einfacher. In seinen Einstellungen wählst du unter „Sortieren und Filtern“ die Kategorie und die Anzahl. Optional zeigst du Datum, Auszug und Beitragsbild an. Seiten mit Blätterfunktion sind damit allerdings nicht möglich.
Klassischer Editor und ältere Themes
Nutzt du den klassischen Editor, fehlen diese Blöcke. Dann gibt es zwei Wege: entweder auf das Kategoriearchiv verlinken (Weg 1) oder ein Plugin nutzen, das eine Beitragsliste per Shortcode bereitstellt. Viele Page-Builder bringen außerdem ein eigenes Element für Beitragslisten mit Kategoriefilter mit. Seit WordPress 5.0 ist der Block-Editor Standard, ein Umstieg lohnt sich auch aus diesem Grund. Mehr dazu unter Editor umstellen oder deaktivieren.
Für Fortgeschrittene: Beiträge einer Kategorie per Code
In einem eigenen Seiten-Template eines klassischen Themes oder in einem Shortcode fragst du Beiträge mit WP_Query ab. Verwende dabei den Kategorie-Slug statt einer ID, das ist lesbarer:
<?php
$rezepte = new WP_Query( array(
'category_name' => 'rezepte', // Slug der Kategorie
'posts_per_page' => 10,
// auf statischen Seiten heißt die Variable 'page', in Archiven 'paged'
'paged' => max( 1, (int) get_query_var( 'paged' ), (int) get_query_var( 'page' ) ),
) );
if ( $rezepte->have_posts() ) {
echo '<ul>';
while ( $rezepte->have_posts() ) {
$rezepte->the_post();
printf( '<li><a href="%s">%s</a></li>', esc_url( get_permalink() ), esc_html( get_the_title() ) );
}
echo '</ul>';
// Seitenlinks für die eigene Abfrage
echo paginate_links( array(
'total' => $rezepte->max_num_pages,
'current' => max( 1, (int) get_query_var( 'paged' ), (int) get_query_var( 'page' ) ),
) );
wp_reset_postdata();
}
Wichtig ist wp_reset_postdata() am Ende, sonst bringt die eigene Abfrage die Ausgabe der restlichen Seite durcheinander. Willst du dagegen die Hauptabfrage ändern, etwa eine Kategorie von der Startseite ausschließen, nutze den Hook pre_get_posts statt einer zusätzlichen Abfrage:
add_action( 'pre_get_posts', function ( $query ) {
if ( $query->is_home() && $query->is_main_query() && ! is_admin() ) {
$query->set( 'category__not_in', array( 12 ) ); // ID der Kategorie
}
} );
Per WP-CLI findest du Slugs und IDs deiner Kategorien:
wp term list category --fields=term_id,name,slug,count
Grundlagen zu Auswahl und Anpassung von Themes erklärt WordPress-Theme wählen und anpassen. Weitere Antworten zur Gestaltung findest du im Bereich Themes & Design. Wenn neu angelegte Kategorien nicht auftauchen, hilft Neue Kategorien werden nicht angezeigt.
Frage dazu? Dein Theme zeigt die Beitragsliste nicht wie gewünscht? Frag im Forum „Themes & Design“: Zum WPDE-Forum
Häufige Fragen
Kann ich Beiträge aus mehreren Kategorien anzeigen?
Ja. Im Abfrage-Loop trägst du einfach mehrere Kategorien ein. Angezeigt werden Beiträge, die mindestens einer davon zugeordnet sind.
Erzeugt eine eigene Kategorie-Seite doppelte Inhalte?
Eine Seite, die nur die Beitragsliste des Kategoriearchivs wiederholt, ist für Suchmaschinen wenig wertvoll. Ergänze eine eigene Einleitung oder verlinke direkt auf das Archiv und pflege dort die Kategoriebeschreibung.