Как на странице тегов (tag.php) исключить рубрики?

Подскажите как можно сделать следующее: Есть шаблон вывода записей с определенным тегом tag.php. Соответственно сюда попадают посты из разных рубрик, но удовлетворяющие тегу. А как можно исключить из вывовд одну рубрику? К примеру, в шаблоне category.php я применил category__not_in при формировании запроса query_posts. Тут такое не подходит. Есть параметр tag__not_in но он к меткам относится, а мне нужно убрать рубрику.

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

  1. Можно добавить в functions.php:

    function exclude_cats( $query ) {
        if ( $query->is_tag('tag_slug') && $query->is_main_query() ) {
            $query->set( 'cat', '-5' );
        }
    }
    add_action( 'pre_get_posts', 'exclude_cats' );

    tag_slug – slug метки, для каторой формируется цикл постов
    5 – ID исключаемой из цикла категории

    А можно напрямую в tag.php в query_post добавить исключаемую категорию (категории):

    query_posts('cat=-5,-7,-9')
    • Спасибо. Первый код помог. А вот если query_posts использовать в шаблоне tag.php то выводит все посты, со всеми метками. т.е. все записи за исключением рубрики.

      • Для вывода постов с определенной меткой можно в query_posts использовать условие tag__in:

        query_posts( array('cat' => -5,  'tag__in' => array(33)) ); 

        33 – ID метки
        5 – ID исключаемой категории

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*