Приветствую всех, реализовываю фильтр по дате которая вводится в созданное поле (Дата) плагина ACF.
Итак, в посте есть два кастомных поля: 1) дата от; 2) дата до.
На странице архива есть календарь в котором можно выбрать диапазон дат.
Фильтруется все это дело следующим образом:
$args[ 'meta_query' ] = array(
'relation' => 'OR',
array(
'key' => 'ключ поля даты от',
'value' => array( 'дата от выбранная на странице архив' , 'дата до выбранная на странице архив' ),
'compare' => 'BETWEEN',
'type' => 'NUMERIC',
),
array(
'key' => 'ключ поля даты до',
'value' => array( 'дата от выбранная на странице архив' , 'дата от выбранная на странице архив' ),
'compare' => 'BETWEEN',
'type' => 'NUMERIC',
),
);
И все бы ничего, работает если в записи ввести даты диапазон которых различается только в один день, например с 1.04 по 2.04. НО, если ввести в записи с 01.04 по 03.04, естественно при фильтрации по 02.04 ничего не найдёт...
Так вот вопрос товарищи, как правильно это реализовать?
UPD
Ладно, собрал функцию, которая в массиве даст мне нужные даты между дат:
$obshaya_data = new DatePeriod(
new DateTime(get_field('ключ поля даты от')),
new DateInterval('P1D'),
new DateTime(get_field('ключ поля даты до').' 23:59')
);
$massiv_dat = array();
foreach ($obshaya_data as $key => $value) {
$massiv_dat[] = $value->format('Ymd');
}
Ну и все, в ступоре теперь, как слепить это всё...
Может внутри meta_query пройтись через foreach? Такое реально вообще?...