Администратор Wordpress публикует несколько фильтров, которые не работают по отдельности
Я создал пользовательский пост под названием «Талант» и создал 3 административных фильтра на основе настраиваемых полей, т. е. пола, поездок и вакцинации.
Вот код:
add_action('pre_get_posts','talent_filter');
function talent_filter($query) {
if ( ! is_admin() ) {
return;
}
global $pagenow;
if ( 'edit.php' === $pagenow ) {
if ( isset( $_GET['gender'] ) && $_GET['gender'] !== '0' ) {
$query->set('meta_query', array(
'relation' => 'AND',
array(
'key' => 'gender',
'value' => sanitize_text_field($_GET['gender']),
'compare' => '='
),
array(
'key' => 'travels_from',
'value' => sanitize_text_field($_GET['travels_from']),
'compare' => '='
),
array(
'key' => 'vaccination',
'value' => sanitize_text_field($_GET['vaccination']),
'compare' => '='
)) );
}
}
}
Код фильтра работает, если я выбираю значение для всех полей, кроме значения по умолчанию, однако, если я пытаюсь отфильтровать на основе только одного из настраиваемых полей и оставить два других значения фильтра по умолчанию, это не сработает.