This website uses cookies to personalize your experience. By using this website you agree to our cookie policy.

Reply To: Searching pages by custom fields

#27780
Ernest MarcinkoErnest Marcinko
Keymaster

Hi Kev,

The issue is, that “Asia” also matches “Australasia“. So the filter also shows items matching items from that value as well. Unfortunately using an “EXACTLY LIKE” operator is not possible in this case, as multiple values might be present in the filter, because of using ACF.

I think the easiest possible solution is to use a custom code, that appedns additional characters to the location filter values. It would be very hard to explain why, it is related to the data storage method and how the database query sees that.

Try adding this custom code to the functions.php in your theme/child theme directory. Before editing, please make sure to have a full site back-up just in case!

add_filter('asp_pre_get_front_filters', 'asp_change_a_filter', 10, 2);
function asp_change_a_filter($filters, $type) {
  foreach ($filters as $k => &$filter) {
	  if ( $filter->type() == 'custom_field' && $filter->data['field'] == 'location' ) {
		 foreach ( $filter->get() as $fk=>$fv ) {
			 if ( $fv->value != '' )
				$filter->attr($fv->value, 'value', '"'.$fv->value . '";');
		 }
	  } 
  } 
  return $filters;
}

This will resolve the issue.