Исключение категории из WP_Query
Последние пару дней я ломаю голову, пытаясь исключить категорию из архива easy digital downloads, который отображается в пользовательском виджете. Однако, как бы я ни пытался, не могу скрыть категорию под названием 'custom-project'.
Вот код, который я пытаюсь использовать, основываясь на инструкциях из https://codex.wordpress.org/Class_Reference/WP_Query
$argsQuery = array(
'posts_per_page' => 3,
'post_type' => 'download',
'tax_query' => array(
array(
'taxonomy' => 'download_category',
'field' => 'slug',
'terms' => 'custom-project',
'include_children' => true,
'operator' => 'NOT_IN'
)
),
);
$get_latest_downloads = new WP_Query( $argsQuery );
$i=1;
while ( $get_latest_downloads->have_posts() ) : $get_latest_downloads->the_post();
//КОД ТЕЛА ВИДЖЕТА
$i++;
endwhile;
Я также пробовал использовать 'cat' вместо 'tax_query', но безуспешно - категория 'custom-project' все равно отображается внутри цикла записей.
$argsQuery = array(
'posts_per_page' => 3,
'post_type' => 'download',
'cat' => '-5',
);
$get_latest_downloads = new WP_Query( $argsQuery );
$i=1;
while ( $get_latest_downloads->have_posts() ) : $get_latest_downloads->the_post();
//КОД ТЕЛА ВИДЖЕТА
$i++;
endwhile;
Я уверен, что название слага и ID категории указаны верно. Буду благодарен за любую помощь.
Проблема 1
В вашем tax query следует использовать NOT IN
вместо NOT_IN
. Именно это мешает корректной работе tax query (при условии, что остальные поля указаны верно).
Проблема 2
В аргументах для WP_Query()
следует использовать category__not_in
вместо cat
. Измените ваш код следующим образом:
$argsQuery = array(
'posts_per_page' => 3,
'post_type' => 'download',
'category__not_in' => 5 ,
);

https://codex.wordpress.org/Class_Reference/WP_Query
category__not_in (массив) - используйте ID категории.
$argsQuery = array(
'posts_per_page' => 3,
'post_type' => 'download',
'category__not_in' => array( 5 ), // массив, а не строка
);
