Defaults, wenn keine Parameter mitgegeben werden.
PHP
/**
* WP_Query Defaults
*/
$query = new WP_Query( [
'post_type' => 'post', // Beiträge
'posts_per_page' => 10, // aus Einstellungen → Lesen
'post_status' => 'publish', // nur veröffentlichte
'orderby' => 'date', // nach Datum
'order' => 'DESC', // neueste zuerst
'paged' => 1, // erste Seite
] );post_status
PHP
/**
* post_status – alle Möglichkeiten
*/
$query = new WP_Query( [
'post_status' => 'publish', // veröffentlicht (Standard)
'post_status' => 'draft', // Entwurf
'post_status' => 'pending', // wartet auf Review
'post_status' => 'private', // privat
'post_status' => 'trash', // Papierkorb
'post_status' => 'auto-draft', // automatischer Entwurf
'post_status' => 'inherit', // Revisionen, Attachments
'post_status' => 'future', // geplant (Datum in Zukunft)
'post_status' => 'any', // alle ausser trash + auto-draft
// mehrere kombinieren:
'post_status' => [ 'publish', 'draft', 'private' ],
] );orderby
PHP
/**
* orderby – alle Möglichkeiten
*/
$query = new WP_Query( [
'orderby' => 'date', // Veröffentlichungsdatum (Standard)
'orderby' => 'modified', // letztes Änderungsdatum
'orderby' => 'title', // alphabetisch nach Titel
'orderby' => 'menu_order', // manuelle Reihenfolge
'orderby' => 'ID', // nach Post-ID
'orderby' => 'author', // nach Autor
'orderby' => 'name', // nach Post-Slug
'orderby' => 'type', // nach Post Type
'orderby' => 'parent', // nach Parent-ID
'orderby' => 'comment_count', // nach Anzahl Kommentare
'orderby' => 'rand', // zufällig (kein order nötig)
'orderby' => 'relevance', // Relevanz (nur bei 's' Suche)
'orderby' => 'none', // keine Sortierung
'orderby' => 'meta_value', // nach Custom Field (string)
'orderby' => 'meta_value_num', // nach Custom Field (numerisch)
// meta_value braucht meta_key:
'orderby' => 'meta_value_num',
'meta_key' => 'preis',
// mehrere kombinieren:
'orderby' => [
'menu_order' => 'ASC',
'date' => 'DESC',
],
] );orderby custom post types (meta_value_num)
PHP
/**
* meta_value_num – numerische Sortierung
*/
// Nach Preis sortieren (günstigste zuerst)
$query = new WP_Query( [
'post_type' => 'produkt',
'orderby' => 'meta_value_num',
'meta_key' => 'preis',
'order' => 'ASC',
] );
// Nach Bewertung sortieren (beste zuerst)
$query = new WP_Query( [
'post_type' => 'rezension',
'orderby' => 'meta_value_num',
'meta_key' => 'bewertung',
'order' => 'DESC',
] );
// Nach Reihenfolge/Priorität sortieren
$query = new WP_Query( [
'post_type' => 'projekt',
'orderby' => 'meta_value_num',
'meta_key' => 'prioritaet',
'order' => 'ASC',
] );meta_value_num vs meta_value
Bash
/**
* Wichtig: meta_value vs meta_value_num
*
* meta_value (String): "9" kommt nach "10" (alphabetisch: 1 < 9)
Ä meta_value_num (Zahl): 9 kommt vor 10 (numerisch korrekt)
*
* → Bei Zahlen IMMER meta_value_num verwenden
*/
Der Unterschied ist wichtig: meta_value sortiert "100" vor "20" weil 1 < 2 alphabetisch. meta_value_num sortiert korrekt 20 vor 100.order
PHP
/**
* order – alle Möglichkeiten
*/
$query = new WP_Query( [
'order' => 'DESC', // absteigend – neueste/grösste zuerst (Standard)
'order' => 'ASC', // aufsteigend – älteste/kleinste zuerst
] );