Wie verwendet man orderby mit meta_query in Wordpress 3.1?
2 Antworten
- Stimmen
-
- 2011-03-02
Dasneue Array
verwendenmeta_query
wählt aus,welche Beiträge die Abfrage zurückgibt.Ja,Siegeben den 'Schlüssel'in diesermeta_query
an,können aber weiterhin die alte Methode von'orderby' => 'meta_value', 'meta_key' => '_events_meta',
zusätzlich zurmeta_query,da diese Zeilen angeben,wie die resultierende Abfrage sortiert wird.Ja,Sie können denselbenmeta_key zweimal angeben.
the new
meta_query
array selects which posts the query returns. So yes, you are indicating the 'key' within thatmeta_query
, but you can still use the old method of'orderby' => 'meta_value', 'meta_key' => '_events_meta',
in addition to the meta_query, as these lines indicate how to sort the resulting query. So yes, you might indicate the same meta_key twice.
-
Diese Antwortistnichtganz richtig.Wenn Sieeinen orderby undeinen meta_key außerhalbeiner vorhandenenmeta_query hinzufügen,wird das Ergebnis zwarnach dem angegebenen Schlüssel sortiert,esenthältjedoch auch alle Beiträge,in denen dieser Meta-Schlüsselfestgelegtist,auch wenn der Wert die Kriteriennichterfülltin dermeta_query (zumindest hatesbei mirbeim Testen sofunktioniert).Einbesserer Weg,dies zutun,könnte darinbestehen,ein Array als orderby-Parameter zu übergeben,wie hierbeschrieben: http://core.trac.wordpress.org/ticket/17065#comment:14This answer is not completely right. If you add an orderby and a meta_key outside of an existing meta_query, the result will indeed sort by the provided key--but it will also then include any post where that meta key is set, even if the value doesn't meet the criteria in the meta_query (at least, that's how it worked for me in testing). A better way to do this might be to pass an array as the orderby param, as described here: http://core.trac.wordpress.org/ticket/17065#comment:14
- 9
- 2012-04-03
- MathSmath
-
- 2011-03-02
Ich verwende denfolgenden Codefürmeine benutzerdefinierten Postsmit dem Namen
events
,um alle Postsin einer Schleife abzurufen.$evtLoop = new WP_Query(array('post_type' => 'events', 'posts_per_page' => 10, 'orderby' => 'meta_value', 'meta_key' => '_events_meta', 'order'=>'DESC'));
Ich denke,Sie verwenden Ihren Code ungefähr auf diegleiche Weise.Ich denke,Sie vermissen den
hinzufügenmeta_key
mit dem Namen des zu sortierenden Meta-Feldes.Vielleicht hilftes,wenn Sie'meta_key' => 'webinar_startDate',
zum äußeren Array?
I'm using the following code for my custom posts called
events
, to get all posts in a Loop.$evtLoop = new WP_Query(array('post_type' => 'events', 'posts_per_page' => 10, 'orderby' => 'meta_value', 'meta_key' => '_events_meta', 'order'=>'DESC'));
I think you are using your code approximatly the same way. I think you are missing the
meta_key
with the name of the meta-field to sort. Perhaps it helps if you add'meta_key' => 'webinar_startDate',
to the outer array?
-
Ich sehejetzt.Ich war verwirrt von der Wordpress-Dokumentation,in der stand,dass 'meta_key' und 'meta_value' abgeschrieben wurden.Ichnahm an,dass diesbedeutete,dassich sienicht verwenden konnte,aberich denke,das warirreführend.Vielen Dank!I see now. I was confused by the Wordpress documentation that said 'meta_key' and 'meta_value' were depreciated. I assumed that meant I couldn't use them, but I guess that was misleading. Thanks!
- 0
- 2011-03-02
- Jeff K.
Istesmöglich,meine Liste derbenutzerdefinierten Beiträgenach dem Filternmit meta_querynach den Metadatenmeiner Wahl zu ordnen?
Ich habebeispielsweiseeinen benutzerdefinierten Beitragstypnamens Webinare. Ich versuche,alle anstehenden Webinare aufzulisten und sienach dembenutzerdefinierten Metafeld webinar_startDate sortieren zu lassen.
Mit derfolgenden Abfrage konnteich die Webinare ohne die alten Webinareerfolgreich zurückgeben. Sieerscheinenjedochimmernochin der Reihenfolge,in der sie veröffentlicht wurden,undnichtnach webinar_startDate.
Ich vermute,dass aufgrund der Änderung von 3.0 auf 3.1 die Verwendung von orderby=>meta_value wahrscheinlich andersist,aberich kannin der WordPress-Dokumentation keine Antwortfinden,um dies zuerklären.
Kannjemand helfen? Vielen Dankim Voraus.