ソートしたループの中で更に別条件でソートをさせたい
-
いろいろと調べているのですが、希望の動きにならず、ご教授をお願い致します。
PHPレベルは初級レベルです。
【前提】
イベントのスケジュールを カスタム投稿とAdvance custom field を併用して構築しております。
たとえば、10月10日 9:00-11:00 イベント1
10月10日 11:00-13:00 イベント2
10月10日 14:00- 16:00 イベント3
11月11日 11:00-13:00 イベント4というように 同日に複数のスケジュールが存在することも多いです。
現在はアドバンスカスタムフィールドの date picker と date and time picker の2つを使って
・日付
・開始時間
・終了時間
の3つを設定しております。(デザインが日付と時間の表示場所が違うため、上記のように別けました)【やりたいこと】
・日付が近い方から表示するという希望があり、下記のようにコードを書きました。
<?php query_posts( array( 'post_type' => 'schedule', 'meta_key' => 'play_date', //日付 'orderby' => 'meta_value_num', 'order' => 'ASC', 'showposts' => 10, 'paged' => $paged ); ?>
上記のように設定すると、日付が近い順に表示することができました。
【問題点】
しかし、上記のようにした場合に、下記のように表示されております。10月10日 14:00- 16:00 イベント3
10月10日 11:00-13:00 イベント2
10月10日 9:00-11:00 イベント1
11月11日 11:00-13:00 イベント4上記だと、日付は近いほうから表示されるのですが、同日の中で時間がバラバラになっており、そこを直す必要があるのですが、
いろいろと試しているのですが、全く上手く機能しません。そこで、複数の条件を入れる必要があると思い、インターネットで調べながら meta_query で複数の条件を指定してみました。
query_posts( array ( 'post_type' => 'schedule', 'order' => 'ASC', 'showposts' => 20, 'meta_query' => array( array( 'key' => 'play_date', 'orderby' => 'meta_value_num' ), array( 'key' => 'start_time', 'orderby' => 'meta_value_num' ) ), );
それでも動きません。
同時に条件を指定しているから動かないのかなとも思いますが、それ以上のことがネットで調べることが出来ず、行き詰まっております。すみませんが、どなたか上記の部分をご教授いただけると助かります。
宜しくお願い致します。
- トピック「ソートしたループの中で更に別条件でソートをさせたい」には新たに返信することはできません。