Wie mache ich eine wp_query mit zwei acf-Feldern, sortiert man nach einem von ihnen?

Ich habe zwei erweiterte benutzerdefinierte Felder, Fußnote und date_edited (ein Datepicker-Feld). Was ich erreichen möchte, ist eine wp_query auszuführen, in der die Fußnote nicht leer ist. Die Ausgabe möchte ich basierend auf date_edited sortiert haben .

Ich habe mehrere Lösungen ausprobiert, ohne das lösen zu können.

Das ist mein bester Versuch:

$args = array( 'post_type' => 'page', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'footnote', 'value' => array(''), 'compare' => 'NOT LIKE' ), array( 'key' => 'date_edited', 'value' => array(''), 'type' => 'DATE', 'compare' => '=' 'orderby' => 'meta_value_num', 'order' => 'DESC' ) ), 'post_status' => 'publish', 'posts_per_page' => 10, 'no_found_rows' => true ); 

Offensichtlich funktioniert das nicht. – Und es ist das date_edited Array, das nicht korrekt ist. Sieht jemand meine Fehler und hat eine korrekte Lösung zu zeigen?

EDIT nachdem @majick geantwortet hat

Das funktioniert. Und ist eine kleine Modifikation von @ Majicks Vorschlag:

 $args = array( 'post_type' => 'page', 'meta_query' => array( array( 'key' => 'footnote', 'compare' => 'EXISTS', ), ), 'post_status' => 'publish', 'posts_per_page' => 10, 'no_found_rows' => true, 'orderby' => 'meta_value_num', 'meta_key' => 'date_edited', 'order' => 'DESC' ); 

Solutions Collecting From Web of "Wie mache ich eine wp_query mit zwei acf-Feldern, sortiert man nach einem von ihnen?"

Sie verwirren nur die Array-Ebenen, die Sortierung erfolgt nicht innerhalb der Meta-Abfrage-Ebene, sondern auf der Haupt-Abfrageebene. Es ist der Unterschied zwischen zwei classn:

https://codex.wordpress.org/Class_Reference/WP_Query https://codex.wordpress.org/Class_Reference/WP_Meta_Query

Wie der Meta-Query-Codex sagt: “Ein benutzerdefinierter Feldwert kann nur ein Array sein, wenn Vergleich ‘IN’, ‘NICHT IN’, ‘BETWEEN’ oder ‘NICHT ZWISCHEN'” ist … Ich denke, du brauchst wirklich NICHTS EQUALS hier, um zu überprüfen, ob der Fußnotenwert gesetzt ist … Ich glaube nicht, dass Sie überprüfen müssen, ob date_edited existiert, so dass Sie eine viel einfachere Abfrage haben:

 $args = array( 'post_type' => 'page', 'meta_query' => array( 'key' => 'footnote', 'value' => '', 'compare' => 'NOT EQUALS' ), 'post_status' => 'publish', 'posts_per_page' => 10, 'no_found_rows' => true, 'orderby' => 'meta_value_num', 'meta_key' => 'date_edited', 'order' => 'DESC' ); 

Hoffe das hilft … und dass dein Fieber gebrochen ist? 🙂