Исключите сообщения, которые имеют только категорию "Без категорий" [дублировать]


Я хочу исключить сообщения, которые только имеют категорию без категорий (т.Е. Идентификатор категории 1), но если сообщение (ошибочно) классифицировано как "Без категорий", но также имеет другие категории, я хочу включить его.

Каждое решение, которое я нашел до сих пор, исключает все сообщения с некатегоризированной категорией, будь то у них есть другие категории или нет. Я пробовал:

'category__not_in' => array('1')

И

'cat' => -1

В аргументах запроса, но я не получаю нужных мне результатов. Есть ли способ обойти это?

Author: SinisterBeard, 2015-06-02

1 answers

Отрабатывая ответ Питера Гусена на этот вопрос, обходной путь состоит в том, чтобы создать список всех категорий, кроме той, которую вы хотите исключить, а затем выполнить поиск сообщений, которые их включают. Таким образом, если сообщение имеет исключенную категорию, но также и другие категории, оно будет включено. Итак, в моем случае:

$args = array ('exclude'=>1,'fields'=>'ids');   
$exclude_uncategorized = get_terms('category',$args);

, А затем включите следующее в $args для wp_query:

'category__in' => $exclude_uncategorized,
 8
Author: SinisterBeard, 2017-04-13 12:37:38