В цикле 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 );
Как можно решить?
Решение такое - нужно указать '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 );
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники