Skip to content

Всё для WordPress, веб-разработки — и не только

🔒 Как скрыть пост или целую категорию с главной страницы WordPress

🔒 Как скрыть пост или целую категорию с главной страницы WordPress

Новый пост улетел на главную и заслонил собой всё. Через месяц таких постов, три десятка, а статьи, которые реально приводят клиентов, уползли на четвёртую прокрутку. Рука так и тянется удалить лишнее. Не надо.

WordPress по умолчанию выводит последние записи на домашнюю страницу. Для блога это норма. Но если у вас каталог, база знаний или магазин, часть контента должна жить в слайдере, на посадочной или в email-рассылке. Дублировать его на главной незачем. Запирать в черновик, терять SEO. Удалять, тем более.

Ниже, пять способов спрятать запись или целую рубрику с главной: от встроенной приватности за два клика до фильтра на уровне базы данных. Выбирайте под свою задачу.

💡 Быстрый обзор:

  • Спрятать один пост от всех посетителей: встроенная приватность WordPress, два клика в редакторе.
  • Выборочно управлять видимостью контента: плагин WP Hide Post, гибкие настройки для главной, категорий, поиска и RSS.
  • Обойти ленту главной без плагинов: опубликуйте запись как страницу, и тема её не заметит.
  • Исключить целую категорию кодом: хук pre_get_posts в файле functions.php, восемь строк.
  • Сделать то же самое галочками: плагин Ultimate Category Excluder, ноль строк кода.

Зачем вообще прятать посты с главной

Причина не всегда в «не хочу показывать». Чаще, в структуре сайта. Допустим, у вас три рубрики: обзоры плагинов, новости индустрии и гостевые статьи. Обзоры работают на поисковый трафик, им место на виду. Новости интересны подписчикам, их логично выводить в слайдере, а не дублировать в общей ленте. Гостевые посты живут в разделе «Колонка авторов» и на главной просто создают шум.

Другой сценарий, WooCommerce. Товар снят с продажи, но страница с описанием и отзывами должна остаться доступной по прямой ссылке. Убрать из каталога, убить накопленный SEO-вес. Скрыть с витрины, сохранив URL, пожалуйста.

WordPress не даёт чекбокса «не показывать на главной» из коробки. Но задача решается, от тривиального до полностью автоматического.

Способ 1: Встроенная видимость, приватный пост

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

Настройка видимости записи WordPress: публичный, приватный, защищённый паролем

Откройте запись в редакторе. Справа, в блоке «Опубликовать», нажмите ссылку «Видимость: Публичный». Выберите Приватный. Всё. Пост исчезает с главной, из архивов и из поиска. Прямая ссылка работает, но только для администраторов и редакторов, обычные посетители получат 404.

Минус на поверхности: контент недоступен никому, кроме вашей команды. Для закрытых черновиков и внутренних инструкций, идеально. Для материалов, которые должны видеть клиенты, нет.

Если нужно глубже разобраться в редакторе WordPress, от базовой публикации до расширенных настроек, на WordPress.org есть официальное руководство по редактору блоков.

Способ 2: Плагин WP Hide Post

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

Метабокс плагина WP Hide Post с чекбоксами видимости на главной, в категориях и поиске

WP Hide Post, бесплатный плагин от Xfinitysoft. После установки у каждой записи, страницы и товара WooCommerce появляется метабокс «Post Visibility». Внутри, восемь чекбоксов: главная страница, рубрики, метки, архивы авторов и дат, поиск, RSS, REST API и виджеты.

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

Что ещё даёт плагин:

  • Плюсы: поддержка WooCommerce «из коробки», скрывает товары с витрины, из категорий и поиска магазина; скрывает медиафайлы и вложения; колонка «Hidden» в админке показывает, где именно спрятан каждый элемент.
  • Минусы: бесплатная версия не поддерживает массовое редактирование, только по одному посту; нет редиректа скрытых страниц на 404 (требуется Pro).
  • Цена: Free; Pro, от $29 в год (Quick Edit, Bulk Edit, 404 Redirect, Hide Everywhere).

Установка в три шага: Plugins → Add New, поиск «WP Hide Post», установить и активировать. Метабокс видимости появляется в редакторе каждой записи сразу после активации.

🔗 WP Hide Post на WordPress.org

Способ 3: Опубликовать как страницу

Обходной манёвр, работающий с большинством тем. Стандартная тема WordPress выводит на главной последние записи (post type post). Страницы (post type page) в этот поток не попадают, они живут отдельно.

Создайте новую страницу (Страницы → Добавить новую), напишите материал и опубликуйте. На главной он не появится. Не попадёт он и в RSS-ленту, и в архивы рубрик, и в результаты поиска, если только вы не настроили поиск на включение страниц отдельно.

Это решение для ситуаций, когда контент живёт по фиксированному URL в меню или на посадочной, а читатели приходят на него по прямой ссылке, не через ленту блога. Просто и без плагинов. Минус, страницы не участвуют в таксономиях записей: нельзя повесить метку или включить в рубрику.

Способ 4: Исключить категорию через код

Предыдущие способы работают поштучно. Но если нужно спрятать целую рубрику, скажем, «Новости индустрии» из 40 постов, ручная установка флажков превращается в пытку. Здесь помогает фильтрация на уровне запросов WordPress.

Сначала узнайте ID категории. Зайдите в Записи → Категории, откройте нужную и посмотрите в адресную строку браузера: параметр tag_ID=55, это и есть ID. Запомните число.

Теперь добавьте в functions.php активной темы (лучше, дочерней) такой код:

1function exclude_category_from_home($query) {
2 if ( $query->is_home() && $query->is_main_query() ) {
3 $query->set( 'cat', '-55' );
4 }
5 return $query;
6}
7add_filter( 'pre_get_posts', 'exclude_category_from_home' );

Замените 55 на ID вашей категории. Минус перед числом означает «исключить».

Что здесь происходит. Функция проверяет, что мы на главной (is_home) и это основной запрос (is_main_query), чтобы не задеть боковые виджеты и вложенные циклы. Затем добавляет параметр cat со знаком минус, стандартный синтаксис WP_Query для исключения категории. WordPress даже не достаёт посты исключённой рубрики из базы, а не просто прячет их в шаблоне. Быстро, чисто, без лишних запросов.

После сохранения файла все записи из выбранной рубрики исчезают с главной. Чтобы вернуть обратно, удалите этот блок из functions.php.

Если нужно исключить несколько категорий, перечислите ID через запятую: 'cat' => '-12,-34,-56'.

Способ 5: Плагин Ultimate Category Excluder

Тем, кто не хочет трогать код, плагин, делающий ровно то же самое через админку.

Страница настроек плагина Ultimate Category Excluder с чекбоксами исключения категорий

Ultimate Category Excluder, бесплатный плагин с 50 000+ активных установок и рейтингом 4,2 на WordPress.org. После активации зайдите в Настройки → Category Exclusion и отметьте галочками категории, которые нужно исключить. Четыре колонки: Front Page, Archives, Feeds, Search. Минималистично. Этого хватает для 90% задач.

  • Плюсы: ноль кода; исключение сразу из четырёх зон одним кликом; работает с родными рубриками WordPress.
  • Минусы: не работает с таксономиями WooCommerce и кастомных типов записей; отдельные пользователи сообщают о конфликте с Elementor, плагин сбрасывает шаблон страницы на «Elementor Canvas» (лечится переключением обратно на «Elementor Full Width»).
  • Цена: Free.

Плагин не обновлялся с декабря 2025, но протестирован вплоть до WordPress 6.9 и остаётся стабильным для базового сценария «исключить рубрику с главной». Если вам критична регулярность обновлений, берите способ 4, те же 8 строк кода без внешних зависимостей.

🔗 Ultimate Category Excluder на WordPress.org

Короткое видео по теме, на английском, но все действия показаны наглядно, по шагам:

⁉️🤔 Частые вопросы

Можно ли скрыть пост с главной, но оставить в поиске?

Да. Плагин WP Hide Post позволяет отметить «Hide from Front Page» и оставить флажок «Hide from Search Results» снятым. Пост будет доступен через поиск и по прямой ссылке, но не появится в ленте на главной. Встроенная приватность так не умеет: она скрывает запись полностью, включая поиск и прямой доступ. Для гибкого управления берите плагин.

Что происходит с SEO-индексацией скрытых постов?

Если пост скрыт через плагин (WP Hide Post или Ultimate Category Excluder), прямая ссылка остаётся рабочей. Google может проиндексировать её, само исключение из ленты главной на индексацию не влияет. Приватные посты WordPress не индексируются: сервер отдаёт 404 для неавторизованных посетителей. Это правильный выбор, если контент не должен попасть в выдачу вообще.

Можно ли скрыть посты из нескольких категорий одновременно?

Можно. В коде перечислите ID через запятую со знаком минус: 'cat' => '-12,-34,-56'. В Ultimate Category Excluder просто отметьте все нужные категории галочками на странице настроек. Ограничение: pre_get_posts с cat исключает категории, но не работает с кастомными таксономиями. Для них используйте параметр tax_query.

Плагин WP Hide Post замедляет сайт?

Нет. Плагин использует собственную таблицу в базе с кешированием, метабокс не добавляет запросов к wp_postmeta. На фронтенде влияние на скорость незаметно. По данным разработчика (Xfinitysoft), прирост, менее 5 мс на страницу при типовой конфигурации.

Что лучше: код или плагин для исключения категорий?

Зависит от того, насколько вам комфортно с PHP. Функция на pre_get_posts из способа 4, это 8 строк без внешних зависимостей и обновлений. Плагин Ultimate Category Excluder, ноль строк кода, но дополнительный плагин в админке. На практике: если исключаете одну-две рубрики и не планируете часто менять правила, код проще и легче. Если категорий много и правила меняются часто, плагин удобнее.

Какой способ выбрать под вашу задачу

Короткая матрица, чтобы не перечитывать статью целиком при следующем заходе:

  • Один пост, только для редакции → Приватная видимость (способ 1). Ноль плагинов, два клика.
  • Один пост, клиенты должны видеть по ссылке → WP Hide Post (способ 2). Гибче некуда, работает с WooCommerce.
  • Контент не для блога, а для меню или посадочной → Опубликовать как страницу (способ 3). Тема не заметит.
  • Целая рубрика, вы дружите с PHPpre_get_posts в functions.php (способ 4). Восемь строк, без плагинов.
  • Целая рубрика, код трогать не хочется → Ultimate Category Excluder (способ 5). Галочки, и готово.

Если вы регулярно скрываете и возвращаете посты, начните с WP Hide Post. Бесплатной версии хватает для главной, категорий, поиска и RSS. Pro пригодится, когда постов под сотню и нужно массовое редактирование.

Один раз настроили, и забыли. WordPress делает всё остальное.