Jeder meiner Posts hat ein einzelnes benutzerdefiniertes Feld, bei dem es sich um eine Datumszeichenfolge handelt (nicht um das Datum des Posts). Anstelle der aktuellen Abfrage meines Themas, die nach Veröffentlichungsdatum bestellt, möchte ich nach diesem benutzerdefinierten Felddatum bestellen. Wie kann ich diese Abfrage (die Abfrage des Themas) ändern, um stattdessen mein benutzerdefiniertes Feld (eine Zeichenfolgendarstellung eines Datums) zu verwenden?
$timeline_query = new WP_Query(array(
'post_type' => 'post',
'orderby' => 'date',
'order' => 'DESC',
'posts_per_page' => -1
));
Die Seite WP_Query im Codex enthält einen Abschnitt zu Order & Orderby Parameters .
Wenn Sie die Abfrage nach einem benutzerdefinierten Feld sortieren möchten, müssen Sie 'orderby' => 'meta_value'
UNDhinzufügen und das benutzerdefinierte Feld (im obigen Beispiel your_date_field
genannt) mit dem Schlüssel meta_key
in der Abfrage angeben.
$timeline_query = new WP_Query(array(
'post_type' => 'post',
'orderby' => 'meta_value',
'meta_key' => 'your_date_field'
'posts_per_page' => -1
));
Nur ein Hinweis für diejenigen, die das HTML5-Feld type = "date" verwenden. Das Format wird in jjjj-mm-tt aufgezeichnet. Ich habe 'orderby' => 'meta_value-num' verwendet, weil ich dachte, dass das Datum numerisch ist und nicht herausgefunden habe, warum die Bestellung nicht gültig ist. Dann habe ich diesen Thread gesehen und stattdessen 'meta_value' verwendet und es hat funktioniert!
HINWEIS Ich wollte dies als Kommentar zu RRikeshs Antwort hinzufügen, kann dies jedoch nicht kommentieren, da mein Konto noch nicht über eine ausreichende Reputation verfügt. Daher musste ich eine neue Antwort hinzufügen.