• いろいろと調べているのですが、希望の動きにならず、ご教授をお願い致します。

    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'
    	    )
    	   ),
    	);
    			
    

    それでも動きません。
    同時に条件を指定しているから動かないのかなとも思いますが、それ以上のことがネットで調べることが出来ず、行き詰まっております。

    すみませんが、どなたか上記の部分をご教授いただけると助かります。

    宜しくお願い致します。

1件の返信を表示中 - 1 - 1件目 (全1件中)
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「ソートしたループの中で更に別条件でソートをさせたい」には新たに返信することはできません。