В WordPress по умолчанию на главной странице или в ленте блога отображаются все записи из всех категорий. Это удобно, но иногда возникают ситуации, когда нужно скрыть записи из определённой категории. Чтобы это сделать, мы можем воспользоваться фильтром, чтобы изменить запрос и исключить определённые категории из вывода.
Скрыть записи на всём сайте
Этот процесс довольно прост и не требует большого количества шагов. Вам лишь потребуется открыть файл functions.php в активной теме и добавить следующий код:
// Скрыть показ записей из определенной категории на всём сайте function ws_hide_post_cat($query) { if ( $query->is_home ) { $query->set('cat','-14,-58,-62'); } return $query; } add_filter('pre_get_posts', 'ws_hide_post_cat');
Обратите внимание на числа в этом коде, они представляют собой ID категорий, которые вы хотите исключить из вывода. Просто замените эти числа на свои, которые вам нужно скрыть, и обязательно добавьте минус перед каждым ID.
Скрыть записи на главной странице сайта
Если выше указанный код вам не подходит, поскольку он исключает записи из вывода определённой рубрики на всём сайте, то можно сделать иначе. То есть скрыть записи только с главной страницы или страницы блога. Добавьте следующий код в файле functions.php, предварительно изменить ID категории на свои.
// Скрыть показ записей из определенной категории из главного цикла function ws_exclude_category_post_home($query) { if ($query->is_home() && $query->is_main_query()) { $query->set('cat', '-15,-5,-65'); } } add_action('pre_get_posts', 'ws_exclude_category_post_home');