Исключение категории из WP_Query

26 нояб. 2017 г., 13:25:18
Просмотры: 53K
Голосов: 6

Последние пару дней я ломаю голову, пытаясь исключить категорию из архива 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
Комментарии

Это неверно, должно быть 'operator' => 'NOT IN'. Если заменить NOT_IN на NOT IN, функция будет работать корректно.

Khosravi.em Khosravi.em
15 мая 2023 г. 12:51:00
Все ответы на вопрос 2
0
10

Проблема 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 ,
);
26 нояб. 2017 г. 14:32:49
0

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 ), // массив, а не строка
);

17 сент. 2018 г. 22:41:01