WP_Query
Was ist WP_Query?
WP_Query ist die zentrale PHP-Klasse in WordPress, mit der Datenbankabfragen für Beiträge, Seiten und Custom Post Types gebaut werden. Kurz gesagt: Immer wenn WordPress Inhalte aus der Datenbank laden soll, steckt WP_Query dahinter – entweder automatisch im Hintergrund oder manuell in eigenem Code.
Wie funktioniert WP_Query?
Du übergibst WP_Query ein Array mit Parametern, und WordPress baut daraus eine optimierte SQL-Abfrage. Das Ergebnis ist ein Objekt, das die gefundenen Beiträge enthält und durch den sogenannten Loop durchlaufen werden kann.
Ein einfaches Beispiel: Alle veröffentlichten Beiträge der Kategorie „News“, maximal 5 Stück, neueste zuerst:
$args = array(
'post_type' => 'post',
'posts_per_page' => 5,
'category_name' => 'news',
'orderby' => 'date',
'order' => 'DESC',
);
$query = new WP_Query( $args );
Die wichtigsten Parameter im Überblick
post_type– welcher Inhaltstyp abgefragt wird (post, page, eigene CPTs)posts_per_page– wie viele Ergebnisse zurückgegeben werden (-1 für alle)orderby/order– Sortierung nach Datum, Titel, Zufallsprinzip etc.meta_query– Filterung nach Custom Fieldstax_query– Filterung nach Taxonomien und Termss– Volltextsuche im Titel und Inhalt
WP_Query vs. get_posts() vs. query_posts()
WordPress bietet mehrere Wege, Inhalte abzufragen. get_posts() ist eine vereinfachte Variante von WP_Query – gut für einfache Abfragen ohne Loop. query_posts() hingegen sollte man meiden: Es verändert die Hauptabfrage der Seite und führt zuverlässig zu Problemen bei Pagination und anderen Funktionen. WP_Query ist in den meisten Fällen die sauberste und flexibelste Wahl.

