Исключить записи, имеющие только категорию 'Без рубрики'

2 июн. 2015 г., 12:52:51
Просмотры: 16.8K
Голосов: 4

Я хочу исключить записи, которые имеют только категорию "Без рубрики" (т.е. категорию с ID 1), но если запись (ошибочно) отнесена к "Без рубрики" и при этом имеет другие категории, я хочу её включить.

Все найденные мной решения исключают все записи с категорией "Без рубрики", независимо от наличия других категорий. Я пробовал:

'category__not_in' => array('1')

и

'cat' => -1

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

2
Комментарии

Нашел :-)

Pieter Goosen Pieter Goosen
2 июн. 2015 г. 13:01:33

Спасибо, проголосовал там, но также добавлю свой ответ, так как окончательное решение было немного другим.

SinisterBeard SinisterBeard
2 июн. 2015 г. 13:24:35
Все ответы на вопрос 1
1

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

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

и затем включите следующее в аргументы $args для wp_query:

'category__in' => $exclude_uncategorized,
2 июн. 2015 г. 13:28:04
Комментарии

Я просмотрел мой и ваш подход, глупая ошибка - забыл параметр taxonomy в get_terms. Наслаждайтесь :-)

Pieter Goosen Pieter Goosen
2 июн. 2015 г. 13:39:21