09.02.2016

Не выводить новости из рубрики на главной в WP

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

Однако, иногда возникает необходимость не выводить кое-какие посты в основной ленте. Ну, скажем, рекламные пресс-релизы или статьи личного характера, которые не хотелось бы выносить на всеобщее обозрение. 

Конечно, можно настроить движок так, чтобы на главной отображалась статическая страница, а не новости. Но это не то. Есть много плагинов, позволяющих "прятать" и новости и даже целые рубрики. Но чаще всего нужно просто не выводить статьи из какой-то одной рубрики. И помочь в этом может вот этот маленький скрипт.

 

Итак.

Для начала заходим в админпанель WordPress.

Выбираем: Внешний вид - Редактор

Выбираем: Функции темы (functions.php)

В самом конце добавляем такой скрипт:

function exclude_category($query) {

if ( $query->is_home ) {

$query->set('category__not_in', array(7));}

return $query;

}

add_filter('pre_get_posts', 'exclude_category');

 

Обратите внимание на красную цифру 7 в коде. Ее нужно будет заменить на id вашей рубрики, новости которой не надо будет выводить на главной.

Для того, чтобы выяснить id рубрики надо: 

Зайти в админпанель WordPress.

Выбирать: Записи - Рубрики

Найти в списке нужную категорию на нажать ссылку "Изменить"

Не выводить новости из рубрики на главной в WP

После этого посмотреть на адресную строку браузера:

Не выводить новости из рубрики на главной в WP

 

Вот и все.