WordPress: Как скрыть записи на главной с определённой рубрики

В 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');
Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *