I'm struggling with this. I a have list of date (not fixed, I can have as many date as I want) made thanks to the ACF Repeater. In my query, I want to filter by date.
But, I have to hide some post if the date choosen is not between my 2 date fields (evenement_date_start and evenement_date_end). This is an example of my date list.
So if I choose between 01/10/2020 and 20/10/2020, the event should not show up. But right now, it does and I can't figure out why.
This is my query args, my date and variable have this format "Ymd" :
$args[] =
['relation' => 'OR',
['relation' => 'AND',
[
"key" => "evenements_liste_dates_AAA_evenement_date_start",
"compare" => "<=",
"type" => 'DATE',
"value" => $startDate,
],
[
"key" => "evenements_liste_dates_AAA_evenement_date_end",
"compare" => ">=",
"type" => 'DATE',
"value" => $endDate,
]
],
['relation' => 'OR',
[
"key" => "evenements_liste_dates_AAA_evenement_date_start",
"compare" => "BETWEEN",
"type" => 'DATE',
"value" => [$startDate, $endDate],
],
[
"key" => "evenements_liste_dates_AAA_evenement_date_end",
"compare" => "BETWEEN",
"type" => 'DATE',
"value" => [$startDate, $endDate],
]
],
];
And my post where rewriting
add_filter('posts_where', function ($query, WP_Query $wp_query) {
if(!is_admin() && $wp_query->query_vars['post_type'] == "evenement" && !$wp_query->is_main_query()) {
$query = str_replace("meta_key = 'evenements_liste_dates_AAA_evenement_date_start'", "meta_key LIKE 'evenements_liste_dates_%_evenement_date_start'", $query);
$query = str_replace("meta_key = 'evenements_liste_dates_AAA_evenement_date_end'", "meta_key LIKE 'evenements_liste_dates_%_evenement_date_end'", $query);
}
return $query;
}, 10, 2);