I try to integrate to my CPT archive page some ACF filters. I start with this tutorial : https://www.advancedcustomfields.com/resources/creating-wp-archive-custom-field-filter/ It works when I use it with ACF radio field (like the example in the tutorial). Now, I try to make it work with ACF checkbox field. When I select one filter, I have no results...
This is my code :
$GLOBALS['my_query_filters'] = array(
'field_5cb6ef1f75209' => 'alcool',
);
// action
add_action('pre_get_posts', 'my_pre_get_posts', 10, 1);
function my_pre_get_posts( $query ) {
// bail early if is in admin
if( is_admin() ) return;
// bail early if not main query
// - allows custom code / plugins to continue working
//if( !$query->is_main_query() ) return;
// get meta query
$meta_query = $query->get('meta_query');
// loop over filters
foreach( $GLOBALS['my_query_filters'] as $key => $name ) {
// continue if not found in url
if( empty($_GET[ $name ]) ) {
continue;
}
// get the value for this filter
// eg: http://www.website.com/events?city=melbourne,sydney
$value = explode(',', $_GET[ $name ]);
// append meta query
$meta_query = array(
array(
'key' => $name,
'value' => $value,
'compare' => 'IN',
)
);
}
// update meta query
$query->set('meta_query', $meta_query);
return;
}
My field 'alcool' is a checkbox. When I replace it with a radio field, it's okay. But I have to use checkboxes.
I try several solutions and I work around arrays and strings, but nothing work...
Thank's !