Как скрыть записи рубрики с главной страницы WordPress
Иногда возникает необходимость удалить записи из рубрики с главной страницы сайта WordPress. Например, есть рубрика «Рассказы», и есть желание, чтобы эти записи отображались только на странице этой рубрики, а не на общей ленте главной страницы.
В этой инструкции разберём, как это сделать с помощью небольшого фрагмента кода, который необходимо добавить в файл functions.php нашей темы.

Шаг 1. Определим идентификатор рубрики, которую необходимо скрыть.
Прежде чем мы начнем писать код, нам нужно узнать идентификатор рубрики, записи которой собираемся убрать из общей ленты.
- Переходим в админ-панель WordPress: Входим в свою учетную запись администратора WordPress.
- Открываем раздел «Рубрики»: В левом меню открываем раздел «Записи» и выбираем «Рубрики».
- Выбираем нужную рубрику: Находим в списке рубрику, которую хотим скрыть с главной страницы (например, «Рассказы»).
- Получаем ID рубрики:
- Наводим курсор мыши на название рубрики (не нажимаем). В нижнем поле браузера мы увидим ссылку. В этой ссылке будет добавлен параметр tag_ID=XXX, где XXX- это и есть идентификатор вашей рубрики.
- Альтернативный способ: нажимаем на название рубрики, чтобы перейти к странице редактирования. И смотрим на адрес в поле браузера. Там будет параметр category&tag_ID=XXX. Копируем числовое значение после tag_ID=.

Шаг 2. Добавляем код в файл function.php нашей темы.
Теперь, когда у нас есть идентификатор рубрики, мы можем добавить код в файл functions.php нашей темы.
Вносить изменения в файлы темы напрямую не рекомендуется, лучше использовать дочернюю тему, чтобы ваши изменения не были потеряны при обновлении основной темы.
Добавляем следующий код в конец файла
|
1 2 3 4 5 6 7 8 9 |
function exclude_category_from_home( $query ) { if ( $query->is_home() && $query->is_main_query() ) { $query->set( 'cat', '-463' ); // ЗАМЕНИТЕ 463 на ID вашей рубрики // Если нужно скрыть несколько категорий, используйте следующий код: // $query->set( 'cat', '-ID_КАТЕГОРИИ_1,-ID_КАТЕГОРИИ_2,-ID_КАТЕГОРИИ_3' ); } } add_action( 'pre_get_posts', 'exclude_category_from_home' ); |
Важно:
Замените 463 в строке $query->set( ‘cat’, ‘-463’ ); на свой идентификатор
Если нужно закрыть несколько рубрик, можно воспользоваться закомментированным текстом $query->set( ‘cat’, ‘-ID_КАТЕГОРИИ_1,-ID_КАТЕГОРИИ_2,-ID_КАТЕГОРИИ_3’ ); и заменить ID_КАТЕГОРИИ_1, ID_КАТЕГОРИИ_2 и ID_КАТЕГОРИИ_3 идентификаторами соответствующих рубрик. Не забываем убрать символы // в начале строки, чтобы код выполнялся. ID рубрики должны быть разделены запятыми.
Отрицательный знак -перед идентификатором рубрики означает, что мы проверяем эту рубрику.
Сохраняем файл function.php.

Шаг 3: проверка результата
- Очищаем кэш WordPress (если используется плагин кеширования): После изменения файла functions.php может потребоваться очистить кэш сайта, чтобы изменения были внесены в силу.
- Обновляем главную страницу сайта: Открываем главную страницу сайта в браузере и убеждаемся, что записи из рубрик, которые добавили, не отображаются в ленте.
- Проверяем страницу рубрики: убеждаемся, что записи по-прежнему доступны на странице самой рубрики.

Пояснение кода:
- function exclude_category_from_home( $query ) { … }: Это наименование объявленной функции.
- if ( $query->is_home() && $query->is_main_query() ) { … }: Это гарантирует, что код будет выполняться только на главной странице.
- $query->set( ‘cat’, ‘-463’ );: Эта строка определяет запрос, устанавливая параметр cat(категорию) в значение -463. Как мы уже говорили, минус означает указание рубрики с ID 463.
- add_action( ‘pre_get_posts’, ‘exclude_category_from_home’ );: Эта строка добавляет нашу функцию exclude_category_from_home в хук pre_get_posts. Хук pre_get_posts позволяет внести изменения в базу данных WordPress для их выполнения.
Важные замечания:
- Резервная копия файла function.php: Перед внесением изменений в файл functions.php всегда делайте его резервную копию. Это позволит вам восстановить исходный файл, если что-то пойдет не так.
- Дочерняя тема: Как уже упоминалось, лучше всего создать дочернюю тему и внести изменения в файл functions.php дочерней темы. Это защищает ваши изменения от перезаписи при обновлении основной темы.
- Альтернативные решения: найти плагины WordPress, которые позволяют скрывать рубрики с главной страницы без необходимости редактирования кода. Если вы не уверены в своих навыках программирования, просмотрите возможность использования плагина.
- Кэширование: После внесения изменений очистите кэш WordPress и кэш браузера, чтобы увидеть изменения.
Следуя этой инструкции, можно легко и быстро скрыть записи из определенных рубрик с главной страницы сайта WordPress.


Комментарии закрыты