Wordpress 3.1のmeta_queryでorderbyをどのように使用しますか?
2 回答
- 投票
-
- 2011-03-02
新しい
の古い方法を使用できます.meta_query
配列は、クエリが返す投稿を選択します.そうです、そのmeta_query
内で「キー」を示していますが、それでも'orderby' => 'meta_value', 'meta_key' => '_events_meta',
meta_queryに加えて、これらの行は結果のクエリを並べ替える方法を示しているためです.そうです、同じmeta_keyを2回指定するかもしれません.
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.
-
この答えは完全には正しくありません.既存のmeta_queryの外にorderbyとmeta_keyを追加すると、結果は実際に提供されたキーで並べ替えられますが、値が基準を満たしていない場合でも、そのメタキーが設定されている投稿も含まれますmeta_query内(少なくとも、テストではそれがどのように機能したか).これを行うためのより良い方法は、ここで説明されているように、orderbyパラメーターとして配列を渡すことです: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
events
というカスタム投稿に次のコードを使用して、すべての投稿をループに入れています.$evtLoop = new WP_Query(array('post_type' => 'events', 'posts_per_page' => 10, 'orderby' => 'meta_value', 'meta_key' => '_events_meta', 'order'=>'DESC'));
コードはほぼ同じように使用していると思います.並べ替えるメタフィールドの名前が付いた
meta_key
がないようです.追加すると役立つかもしれません'meta_key' => 'webinar_startDate',
外側のアレイに?
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?
-
見えます.「meta_key」と「meta_value」が減価償却されたというWordpressのドキュメントに混乱しました.使えないと思っていたのですが、誤解を招いたと思います.ありがとう!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.
カスタム投稿のリストをmeta_queryでフィルタリングした後、選択したメタデータで並べ替えることはできますか?
たとえば、ウェビナーと呼ばれるカスタム投稿タイプがあります.今後開催されるすべてのウェビナーを一覧表示し、webinar_startDateというカスタムメタフィールドで並べ替えようとしています.
次のクエリを使用して、古いウェビナーを除いてウェビナーを正常に返すことができました.ただし、webinar_startDateではなく、公開された順序で表示されます.
3.0から3.1への変更により、orderby=>meta_valueの使用はおそらく異なると思いますが、これを説明するための回答がWordPressのドキュメント内に見つかりません.
誰か助けてもらえますか?よろしくお願いします.