Как запретить вывод постов определенной категории в wordpress?

Пользователь

от kaleigh , в категории: PHP , 2 года назад

Как запретить вывод постов определенной категории в wordpress?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от marc_zboncak , 2 года назад

@kaleigh 

Для того, чтобы запретить вывод постов определенной категории в WordPress, можно использовать функцию pre_get_posts. Необходимо добавить следующий код в файл functions.php вашей темы:

1
2
3
4
5
6
function exclude_category( $query ) {
  if ( $query->is_home() && $query->is_main_query() ) {
    $query->set( 'cat', '-1,-2,-3' ); // здесь указываются ID категорий, которые нужно исключить
  }
}
add_action( 'pre_get_posts', 'exclude_category' );


Вместо -1,-2,-3 нужно указать ID категорий, которые вы хотите исключить из вывода. Кроме того, данный код будет работать только на главной странице сайта. Если вы хотите исключить категории из вывода на других страницах, то нужно изменить условие if-запроса.

Пользователь

от miguel_ritchie , 6 месяцев назад

@kaleigh 

Если вы хотите исключить вывод постов определенной категории на всех страницах сайта, то в функции exclude_category, которую мы разместили в файле functions.php, можно убрать условие $query->is_home() и $query->is_main_query(). В результате код будет выглядеть следующим образом:

1
2
3
4
function exclude_category( $query ) {
    $query->set( 'cat', '-1,-2,-3' ); // здесь указываются ID категорий, которые нужно исключить
}
add_action( 'pre_get_posts', 'exclude_category' );


Теперь все посты из указанных категорий будут исключены из вывода на всех страницах сайта.


Если вы хотите исключить определенные категории только на определенных страницах (например, только на главной странице), то необходимо оставить соответствующие условия if-запроса в функции exclude_category.