43 lines
1.2 KiB
PHP
43 lines
1.2 KiB
PHP
<?php
|
|
/**
|
|
* Makes a filter for the custom post type ajut and its custom fields
|
|
*/
|
|
|
|
// action
|
|
add_action('pre_get_posts', 'my_pre_get_posts');
|
|
|
|
function my_pre_get_posts( $query ) {
|
|
|
|
// bail early if is in admin
|
|
if( is_admin() ) { return; }
|
|
|
|
|
|
// allow the url to alter the query
|
|
if( isset($_GET['os_fund_target']) )
|
|
{
|
|
// get original meta query
|
|
$meta_query = [];
|
|
$meta_query[] = array('relation' => 'OR');
|
|
$meta_query[] = $query->get('meta_query');
|
|
$fieldsearchvalues= explode(',', $_GET['os_fund_target']);
|
|
foreach( $fieldsearchvalues as $fieldsearchvalue ){
|
|
$os_search_value = $fieldsearchvalue; //'entitat-publica'; // whatever
|
|
$os_field_value = sprintf( '^%1$s$|s:%2$u:"%1$s";', $os_search_value, strlen( $os_search_value ) );
|
|
|
|
// add aur meta query to the original meta queries
|
|
$meta_query[] = array(
|
|
array(
|
|
'key' => 'os_fund_target',
|
|
'value' => $os_field_value,
|
|
'compare' => 'REGEXP',
|
|
),
|
|
);
|
|
}
|
|
// update the meta query arguments
|
|
$query->set('meta_query', $meta_query);
|
|
}
|
|
|
|
//always return
|
|
return;
|
|
}
|