Иногда на сайте, особенно на блоге, возникает необходимость исключить из вывода на главной странице записи из конкретной категории.
Зачем исключать категорию из главной страницы WordPress?
WordPress по умолчанию на главной странице сайта выводит список записей из всех категорий. Но часто некоторый контент не является частью ваших обычных записей. Например, на техническом блоге может присутствовать категория Об искусстве или что-нибудь подобное. Понятно, что такой контент “выпадает” из общего формата сайта. В таком случае его можно просто скрыть из вывода на главной, оставляя при этом просмотр материала где-либо в навигационном меню.
Как исключить категорию из главной страницы WordPress?
Рассмотрим два наиболее популярных способа решения задачи, из которых вы сможете выбрать тот, который наилучшим образом соответствует вашим потребностям.
Способ 1. Плагин Ultimate Category Excluder
Использование бесплатного плагина Ultimate Category Excluder является самым простым способом скрыть записи категории на главной.
После установки и активации плагина первым делом нужно перейти в админ-раздел Настройки -> Category Excluder.
На странице настроек плагина необходимо лишь выбрать нужную категорию в колонке Exclude from Front Page? и нажать кнопку Update.
Способ 2. Вручную
В WordPress существует еще один способ исключить категорию из вывода на главной. Он предусматривает вставку специальных PHP-инструкций в основной конфигурационный файл functions.php вашей активной WordPress-темы.
Если Вы не знаете, как редактировать functions.php, то в этом случае Вам поможет плагин ProFunctions.
Добавим следующий код:
function wpschool_category_home( $query ) { if ( $query->is_home ) { $query->set( 'cat', '-61' ); } return $query; } add_filter( 'pre_get_posts', 'wpschool_category_home' );
В указанном коде нужно сделать некоторые изменения. Так, в строке $query->set( ‘cat’, ‘-61’ ) значение ‘-61’ означает уникальный идентификатор категории (рубрики), которую нужно скрыть. О том, как посмотреть это значение, мы детально рассматривали в одной из наших прошлых статей.
Если нужно скрыть несколько категорий, то их ID нужно просто перечислить через запятую. Например:
$query->set( 'cat', '-61', '-44', '-5' );
Нажмите, пожалуйста, на одну из кнопок, чтобы узнать понравилась статья или нет.
Здравствуйте! Не подскажите, вручную если код вставлять в functions.php, куда его примерно вставлять? Вставил в конце, не работает, в другие места вставлял, тоже не работает…
Добрый день!
Ваш код будет работать в любом месте functions.php. Но, чтобы не запутаться, обычно его добавляют в конце. Если не работает, нужно проверять сам код. Попробуйте переключиться на другую тему и попробовать в ней. Если на нескольких темах не будет результата, то нужно разбираться в самом коде.
С уважением Михаил
а как вы сделали, что функция по имени вашего сайта? wpschool?
Имя функции может быть любым, единственное условие, оно должно быть уникальным что бы функции самого wordpress и ваша не назывались одинаково
Не совсем понятно: каким должен быть чистый код функции? зачем этот атрибут? – wpschool
$query->set( ‘cat’, ‘-61’, ‘-44’, ‘-5’ ); Так не работает. Запустилось вот так: $query->set( ‘cat’, ‘-61, -44, -5’ );