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

Admin WordPress

Бывает, что необходимо вывести записи (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"