WordPress: Statische Seiten (Pages) aus WP_Query ausschließen
Einzelne Seiten können mit Hilfe ihrer ID und einem WP_Query aus dem WordPress Loop ausgeschlossen werden.
In WordPress werden Inhalte mit Hilfe von Loops ausgespielt. Der WP_Query ist hierbei der mächtigste Loop mit vielen Einstellmöglichkeiten. Sollte euch also der Standard-Loop einmal nicht mehr ausreichen, empfehlen wir für die meisten Anwendungsfälle die Verwendung des WP_Query. In diesem Artikel zeigen wir euch, wie ihr einzelne Seiten mit Hilfe ihrer ID aus dem WP_Query
-Loop ausschließen könnt.
Argumente an WP_Query Loop übergeben
Um dem WP_Query mitzuteilen, welche Inhalte im Loop angezeigt werden sollen, muss ein Array mit Argumenten erstellt werden. Dieses Array wird für eine bessere Übersichtlichkeit meistens in einer Variable ($args
) gespeichert und später an den Loop übergeben. Im folgenden Codebeispiel geben wir an, dass alle statischen Seiten ausgespielt werden sollen, sortiert nach ihrem Titel.
$args = array(
'post_type' => 'page',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC'
);
Eine Übersicht über alle Optionen findet ihr im WordPress-Codex.
Statische Seiten aus dem Loop ausschließen
Wollt ihr nun gewisse Seiten nicht in der Ausgabe des Loops anzeigen lassen – z. B. das Impressum – müsst ihr die Argumente des Loops um folgenden Befehl erweitern. Als Wert gebt ihr hier jetzt einen weiteren Array mit den IDs der Seiten an, die ihr ausschließen wollt. Im Beispiel werden die Seiten mit den IDs 1 und 2 ausgeschlossen.
'post__not_in' => array(1,2)