Я сделал это совершенно по-другому, и использовал только слагов, как так:
$featured_args = array(
'post_type' => 'news', // I have a custom post type, 'news'
'tax_query' => array (
array(
'taxonomy' => 'subject', // I have a custom taxonomy, 'subject'
'field' => 'slug',
'terms' => array('politics', 'economy-and-business', 'disasters'),
'operator' => 'NOT IN' // This operator ensures that the values listed in 'term' are excluded
)
),
'post_status' => 'publish',
);
$featured_query = new WP_Query($featured_args);
Обратите внимание, что существует запись массива, называемая tax_query , которая также содержит другой массив, содержащийпараметры, называемые operator , и этот operator имеет значение NOT IN , что исключит значения в поле term в противоположностьк их включению.
ВАЖНОЕ ПРИМЕЧАНИЕ: Обращаем ваше внимание, что если сообщение содержит два термина таксономии, и один из этих терминов включен в список исключаемых терминов, то это не будетчасть результата.
Подробнее читайте здесь: http://codex.wordpress.org/Class_Reference/WP_Query