Вдруг кому пригодится... решил это таким способом:
1) создаем поле text в записи acf, в которое в дальнейшем будет записывать массив дат.
2) в function.php цепляемся к хуку сохранения записи, которое будет вызывать функцию записи массива в созданное ранее поле, используя введенные даты пользователем.
add_action( 'save_post', 'sozdaem_massiv_dat_v_zapisi' );
function sozdaem_massiv_dat_v_zapisi( $post_id ) {
$obshaya_dataaa = new DatePeriod(
new DateTime(get_field('ключ поля даты от', $post_id)),
new DateInterval('P1D'),
new DateTime(get_field('ключ поля даты до', $post_id).' 23:59')
);
$massiv_dataaa = array();
foreach ($obshaya_dataaa as $key => $value) {
$massiv_dataaa[] = $value->format('Ymd');
}
update_field('ключ поля куда запишем массив', $massiv_dataaa, $post_id);
}
3) Диапазон дат указанный пользователем я получаю в виде: 07.04.2023-08.04.2023
По этому, нам нужно получить массив всех дат между промежутком:
$data = explode('-', $_POST['data']);
$obshaya_data = new DatePeriod(
new DateTime($data[0]),
new DateInterval('P1D'),
new DateTime($data[1].' 23:59')
);
$massiv_dat = array();
foreach ($obshaya_data as $key => $value) {
$massiv_dat[] = $value->format('Ymd');
}
4) Далее пишем сам фильтр:
$meta_query = array( 'relation' => 'OR' );
foreach ($massiv_dat as $massiv_data) {
$meta_query[] = array (
'key' => 'ключ поля где хранится массив дат',
'value' => $massiv_data, // Массив дат который мы получили от пользователя
'compare' => 'LIKE',
);
}
$args['meta_query'][] = $meta_query;
Главное работает, если кто знает лучшее решение, прошу отписаться :)