Администратор 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' => '='
            )) );
        }
    }
}

Код фильтра работает, если я выбираю значение для всех полей, кроме значения по умолчанию, однако, если я пытаюсь отфильтровать на основе только одного из настраиваемых полей и оставить два других значения фильтра по умолчанию, это не сработает.

Скриншот

0 ответов

Другие вопросы по тегам