Dies ist ähnlich, aber spezifischer als die Frage, die hier zu finden ist . Diese Frage schlägt das Wordpress WP_Query-Beispiel vor, das hilfreich ist, aber für mich nicht funktioniert.
Mein Code lautet wie folgt:
$posts = get_posts(array(
'post_type' => 'events',
'posts_per_page' => -1,
'meta_key' => 'from_datetime',
'meta_value' => date( "F d, Y g:i a" ),
'meta_compare' => '>',
'orderby' => 'meta_value',
'order' => 'ASC'
));
Die benutzerdefinierten Felder werden mit ACF in unserem Blog erstellt. Das Feld from_datetime
sieht folgendermaßen aus:
April 18, 2017 2:30 pm
Also habe ich das auf die Datumsnomenklatur übersetzt:
date( "F d, Y g:i a" )
Ereignisse sind ein benutzerdefinierter Beitragstyp. Grundsätzlich möchte ich die kommenden 2 Events anzeigen, die NICHT bestanden werden. Das ist also ziemlich ähnlich zu dem Beispiel auf der WP_Query-Seite, aber das Obige funktioniert immer noch nicht. Die Abfrage gibt nichts zurück. Ich weiß, dass es vier Ereignisse gibt, die jenseits des "Jetzt" liegen, wenn ich das meta_value
-Zeug oben entferne.
Irgendwelche Gedanken darüber, was ich falsch mache? Die Abfrage scheint gemäß der Dokumentation bei WP korrekt zu sein. Vielen Dank!
Ich denke, Sie haben einen Fehler in Ihrer Anfrage. Bitte versuchen Sie dies:
$posts = get_posts(array(
'post_type' => 'events',
'posts_per_page' => -1,
'meta_query' => array(
'meta_key' => 'from_datetime',
'type' => 'DATETIME', // You can also try changing it to TIME or DATE if it doesn't work
'meta_value' => date( "F d, Y g:i a" ),
'meta_compare' => '>',
),
'orderby' => 'meta_value',
'order' => 'ASC'
));
Verwenden Sie ACF Pro (z. B. den Feldtyp "Date and Time Picker") oder eines der Plugins, das "normalem" ACF einen Datums-/Zeitfeldtyp hinzufügt (z. B. Date & Time Picker für Advanced Custom)? Felder ).
In diesem Fall werden Datums-/Zeitwerte in $wpdb->postmeta
wie 2017-04-18 14:30:00
gespeichert, unabhängig von dem in der Felddefinition angegebenen "Anzeigeformat" oder "Rückgabeformat". Daher sollten Sie abfragen als:
$posts = get_posts(array(
'post_type' => 'events',
'posts_per_page' => -1,
'meta_key' => 'from_datetime',
'meta_value' => date( "Y-m-d h:i:s" ),
'meta_compare' => '>',
'orderby' => 'meta_value',
'order' => 'ASC'
));
Wenn Sie eines der Plugins verwenden, das "normalem" ACF einen Datums-/Zeitfeldtyp hinzufügt, müssen Sie herausfinden, wie dieses Plugin Werte speichert und meta_value
entsprechend formatiert.