Как исключить мета поле в запросе get_posts?

154
30 декабря 2017, 04:38

В цикле wordpress есть запрос get_posts произвольного типа, в выводе которого нужно исключить мета поле cp_category со значением "Шины" и полностью мета поле cp_new. С первой частью справился на ура вот так:

$args = array(
    'post_type' => APP_POST_TYPE,
    'ignore_sticky_posts' => true,
    'meta_query' => array( 
                      array('key' => 'cp_category', 
                            'value' => 'Шины', 
                            'compare' => '!='
                            )
                     ), 
);
$categories = get_posts( $args );

А вот с исключением целого мета поля у меня возникли проблемы - далаю так, но в таком случае исключается не само поле, а значения в нем.

$args = array(
    'post_type' => APP_POST_TYPE,
    'ignore_sticky_posts' => true,
    'meta_query' => array( 
                     'relation' => 'AND',
      array('key' => 'cp_category', 
            'value' => 'Шины', 
            'compare' => '!='
                  ),
                        array('key' => 'cp_new', 
            'compare' => '!='
                  )
         ), 
);
$categories = get_posts( $args );

Как можно решить?

Answer 1

Решение такое - нужно указать 'compare' => 'NOT EXISTS'

$args = array(
    'post_type' => APP_POST_TYPE,
    'ignore_sticky_posts' => true,
    'meta_query' => array( 
                     'relation' => 'AND',
      array('key' => 'cp_category', 
            'value' => 'Шины', 
            'compare' => '!='
                  ),
                        array('key' => 'cp_new', 
            'compare' => 'NOT EXISTS'
                  )
         ), 
);
$categories = get_posts( $args );
READ ALSO
Два тире в регулярном выражении

Два тире в регулярном выражении

Добрый день, люди добрыеВ регулярных выражениях недавно, мучает одна строка

166
Двойной static_cast через void*, вместо reinterpret_cast

Двойной static_cast через void*, вместо reinterpret_cast

Некоторые авторы используют двойное преобразование через void* с помощью static_cast, вида:

229
C++: enable_shared_from_this и деструктор

C++: enable_shared_from_this и деструктор

Насколько я понимаю, в enable_shared_from_this определен свой деструкторКак мне написать свой деструктор, в котором нужно закрыть файловый дескриптор,...

237