Исключение рубрики из главной страницы
Как можно безвредно исключить из выдачи главной страницы все записи с рубрики N?
Причем так чтобы не поломался цикл (выходило к примеру ровно 5 записей) и оффсет (пагинация простым словом).
На способ фильтровать по ID рубрики записи в loop ответ сразу нет (таким способом на каждой странице будет свое кол-во показываемых записей).
Это можно сделать с помощью is_main_query, там 2 пример почти то, что нужно.
Событие pre_get_posts там первый пример, как раз ваш случай...
#1 Исключение категорий на главной
Этот пример показывает как убрать посты из указанных категорий из вывода на главной странице блога. Например, у нас есть 2 категории с ID 1 и 1347, которые нам не нужно показывать на главной. Чтобы исключить эти категории из запроса, используйте такой код в плагине или в теме:
function exclude_category( $query ) { if ( $query->is_front_page() && $query->is_main_query() ) { $query->set( 'cat', '-1,-1347' ); } } add_action( 'pre_get_posts', 'exclude_category' );В is_main_query и pre_get_posts в принципе одинаковые примеры размещены