Как я могу заказать wp_query с датой и временем - PullRequest
1 голос
/ 09 марта 2020

Я использую дополнительные настраиваемые поля с отдельными полями даты и времени для событий. Что мне нужно сделать, так это показать все события, которые еще не произошли.

Мне удалось пока показать события по порядку по дате, но сейчас мне нужно, чтобы каждое из них было в порядке. к тому времени они также произойдут. Как только время наступит, событие должно быть удалено из списка.

Мои аргументы для списка событий до сих пор выглядят так ...

$today = date('Ymd');
$time = date('H:i:s');
$compCount = array(
  'post_type' => 'product',
  'posts_per_page'  => -1,
  'meta_query' => array(
    array(
      'key'     => 'comp_closing',
      'compare' => '>=',
      'value'       => $today,
    )
  ),
  'orderby'   => 'meta_value_num',
  'order'     => 'ASC',
);

мое поле для даты comp_closing, а время closing_time.

Я пытался использовать relation с 2 различными мета-массивами, но мне показалось странным, что что-то работает правильно.

1 Ответ

1 голос
/ 09 марта 2020

Хотя я не знаю, как поля comp_closing и closing_time хранятся в базе данных, это может указать вам правильное направление.

$today = date('Y-m-d');
$time = date('H:i:s');

$compCount = array(
  'post_type' => 'product',
  'posts_per_page'  => -1,
  'meta_query' => array(
    'relation' => 'OR',
    // make sure the date is after the current date...
    array(
      'key'     => 'comp_closing',
      'compare' => '>',
      'value'       => $today,
    ),
    // ...or if the date is the same...
    array(
      'relation' => 'AND',
      array(
        'key'     => 'comp_closing',
        'compare' => '=',
        'value'       => $today,
      ),
      // ...make sure we didn’t hit the time yet.
      array(
        'key'     => 'closing_time',
        'compare' => '>',
        'value'       => $time,
      )
    )
  ),
  'orderby'   => 'meta_value_num',
  'order'     => 'ASC',
);
...