Geordnete Abfrage mit Meta_key erstellen

Ich habe eine massive Straßenblockade, an der ich seit Tagen festhalte, getroffen und hoffe, dass jemand dabei helfen kann.

Das Problem:

  1. Ich habe ein benutzerdefiniertes Feld namens order_value mit den Werten road , air und bus .

  2. Ich verwende dieses benutzerdefinierte Feld, um eine Reihe von Posts zu bestellen. So werden alle zu jedem Satz von road , air oder bus gehörenden Artikel gruppiert und aufgelistet. Dies wird erfolgreich durchgeführt.

  3. Jetzt sieht es so aus, als würde $the_query die Elemente immer in alphabetischer Reihenfolge des meta_value . Zum Beispiel “Luft, Bus, Straße”. A-> Z.

  4. Ich möchte, dass der Auftrag in der Abfrage selbst geändert wird, damit er die Posts in einer beliebigen Reihenfolge bestellen kann, d. “Straße, Luft, Bus” und so weiter.

  5. Ich versuche hauptsächlich, eine Reihe von Beiträgen in einer bestimmten Reihenfolge zu gruppieren, die ich in der Abfrage selbst angeben kann.

Hier ist meine Frage und was ich versuche zu tun

 $args = array( 'post_type' => 'post', 'posts_per_page' => -1, //'cat' => $term->term_id, 'meta_key' => 'order_value', 'orderby' => 'meta_value', 'meta_value' => array('road','air','bus'), 'order' => 'ASC' ); $the_query = new WP_Query( $args ); 

Ich versuche, die MySQL-Abfrage nicht zu verwenden, da ich auch nicht sehr gut darin bin.

Solutions Collecting From Web of "Geordnete Abfrage mit Meta_key erstellen"

Ich denke, die Art ist entweder alphabetisch oder numerisch. Es gibt keine API-Möglichkeit, um ausführlichere Sortierregeln für die Abfrage bereitzustellen, und es wäre wahrscheinlich unpraktisch, mit SQL zu arbeiten.

Da Sie den vollständigen Satz von Posts abrufen (müssen Sie sich keine Gedanken über Paginierung machen), wäre der einfachste Weg:

  1. Fordern Sie keine Sortierung aus der Abfrage an.
  2. Re-sort $the_query->posts setzt den Ergebnissatz mit PHP-Code, bevor die Schleife für die Ausgabe $the_query->posts .