Comment utilisez-vous orderby avec meta_query dans Wordpress 3.1?
2 réponses
- votes
-
- 2011-03-02
lenouveautableau
meta_query
sélectionne lesmessages renvoyéspar la requête.Donc oui,vousindiquez la 'clé' dans cettemeta_query
,mais vouspouveztoujours utiliser l'ancienneméthode de'orderby' => 'meta_value', 'meta_key' => '_events_meta',
en plus de lameta_query,car ces lignesindiquent comment trier la requête résultante.Alors oui,vouspouvezindiquer deuxfois lamêmemeta_key.
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.
-
Cette réponsen'estpastout àfaitjuste.Si vous ajoutez un orderbyet unemeta_keyen dehors d'unemeta_queryexistante,le résultat seraeffectivementtriépar la cléfournie -maisilinclura égalementtoutmessage où cettemeta keyest définie,même si la valeurne répondpas aux critèresdans lameta_query (dumoins,c'est comme ça que ça afonctionnépourmoi dans lestests).Unemeilleurefaçon defaire celapourrait être depasser untableau commeparamètre orderby,comme décritici: 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
J'utilise le code suivantpourmesmessagespersonnalisés appelés
events
,pour obtenirtous lesmessages dans uneboucle.$evtLoop = new WP_Query(array('post_type' => 'events', 'posts_per_page' => 10, 'orderby' => 'meta_value', 'meta_key' => '_events_meta', 'order'=>'DESC'));
Jepense que vous utilisez votre code àpeuprès de lamêmemanière.Jepense qu'il vousmanque le
meta_key
avec lenom duméta-champ àtrier.Peut-être que cela aide si vous ajoutez'meta_key' => 'webinar_startDate',
vers letableauexterne?
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?
-
Je voismaintenant.J'ai été déroutépar la documentation Wordpress qui disait que «meta_key»et «meta_value» étaient dépréciés.J'ai supposé que cela signifiait queje nepouvaispas les utiliser,maisje suppose que c'étaittrompeur.Merci!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.
Est-ilpossible de classerma liste demessagespersonnalisés,après l'avoirfiltrée avecmeta_query,par lesmétadonnées demon choix?
Parexemple,j'ai untype depublicationpersonnalisé appelé webinaires. J'essaie de répertoriertous les webinaires à veniret de les classerpar le champmétapersonnalisé appelé webinar_startDate.
À l'aide de la requête suivante,j'aipu renvoyer les webinaires avec succèsen excluant les anciens webinaires. Cependant,ils sortenttoujours dans l'ordre oùils ont étépubliés,et nonpar webinar_startDate.
Je soupçonne qu'en raison du changement de 3.0 à 3.1,l'utilisation de orderby=>meta_valueestprobablement différente,maisje netrouvepas de réponse dans la documentation WordPresspourexpliquer cela.
Quelqu'unpeut-il aider? Merci d'avance.