Как исключить категории и теги при выводе записей wp_query

Бывает, что необходимо вывести записи (wp_query) на WordPress исключая конкретные категории или теги. Как это сделать расскажу в этой заметке.

Особенно часто возникает задача по исключению записей из конкретных категорий и тегов, когда нужно вывести WP_QUERY несколько раз на одной странице. Для того, чтобы исключить дубли уже выведенных записей, мы уберём их из вывода.

За исключение записей из категорий отвечает:

'category__not_in'  => array(130, 310),

Исключить теги можно так:

'tag__not_in'       => array(141, 153, 155, 292, 311, 313),

Окончательный вид вывода может быть таким:

$paged = get_query_var( 'paged', 1 );

$args = array(
    'category__not_in'  => array(130, 310),
    'tag__not_in'       => array(141, 153, 155, 292, 311, 313),
    'post_type'         => 'post',
    'orderby'           => 'date', // Сортируем все записи по дате
    'order'             => 'DESC', // От большего к меньшему
    'paged'             => $paged, // Нужен для правильной работы пангинации
    'posts_per_page'    => '3',
);

// Полоностью перезаписываем параметры
global $wp_query;
query_posts( $args );

if ( have_posts() ) : while ( have_posts() ) : the_post();
    get_template_part( '/archive/article' ); // здесь вывод записей
endwhile;
else :
endif;

wp_reset_query(); // Сбрасываем, чтобы количество страниц не увеличилось и не создались страницы без записей. Если этого не сделать, количество страниц увеличится из-за разбиения на 3 записи. И если на второй странице вывод записей больше 3-х, то на первой странице появятся ссылки на не рабочие страницы.
Метки:

Привет. Ты находишься на моём сайте. Я разработчик. Здесь я делюсь своими наработками и знаниями. Спрашивай в комментариях, если тебе что-то не понятно или пиши, если есть что добавить.

Если вам пригодилась информация, вы можете поблагодарить автора сайта символическим пожертвованием:

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи: "Как исключить категории и теги при выводе записей wp_query"
Если вам нужно добавить участок кода ставьте его между тегами <code></code>