2016-06-27 6 views
0

タイムスロットのカスタムフィールドで「イベント」を追加できるカスタムポストタイプのスケジュールがあります。このカスタムフィールドは、ACF Proを使用するリピーターです。 日付、開始時刻、終了時刻が含まれています。日付ピッカーと時刻ピッカーWP_Queryを使用して時間が経過した場合にワードプレスの投稿を表示しない

ホームページでは、アートワークとイベントのタイトルを引っ張り、「今日の」イベントのみを時間順に表示するイメージスライダがあります。 私が今したいことは、通過したイベントを表示しないことです。たとえば、現在の時刻が14:00 pmの場合、その時刻より前に終了したすべての番組は表示されません。ショーが13:00 pmに始まり、15:00 pmに終了した場合、そのショーはまだ表示され、最初に表示されます。それが理にかなったことを願っていますかここで

は、これまでのところ、私のWP_Queryであるが、いくつかの試行の後、私は必要に応じて動作するように変更する方法を見つけ出すことはできません。

  <?php 
       $args = array(
        'post_type'  => 'schedule', 
        'posts_per_page' => '-1', 
        'meta_query'  => array(
        'relation'  => 'AND', 
         'date_clause' => array(
         'key'  => 'schedule_time_slot_%_schedule_show_date', 
         'compare' => '=', 
         'value' => $day, 
        ), 
         'time_clause' => array(
         'key'  => 'schedule_time_slot_%_schedule_show_start_time', 
         'compare' => 'EXISTS', 
        ), 
        ), 
        'orderby' => array(
         'date_clause' => 'ASC', 
         'time_clause' => 'ASC', 
        ) 
       ); 

答えて

1
 <?php 
      $args = array(
       'post_type'  => 'schedule', 
       'posts_per_page' => '-1', 
       'meta_query'  => array(
       'relation'  => 'AND', 
        'date_clause' => array(
        'key'  => 'schedule_time_slot_%_schedule_show_date', 
        'compare' => '=', 
        'value' => $day, 
       ), 
        'time_clause' => array(
        'key'  => 'schedule_time_slot_%_schedule_show_start_time', 
        'compare' => '>=', 
        'value' => time(), 
       ), 
       ), 
       'orderby' => array(
        'date_clause' => 'ASC', 
        'time_clause' => 'ASC', 
       ) 
      ); 

注time_clause引数の変化。 time_clauseが時刻と等しいか、それよりも遅い場合にのみ、time_clauseを表示します。

+0

治療を受けた、ありがとう。 –

関連する問題