Скрываем записи определенных рубрик с главной страницы

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

Для удаления рубрики с главной страницы wordpress существует большое количество плагинов. Один из них — это Frongpage Category Filter.

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

Как обычно, код необходимо разместить в самом низу файла functions.php, без пустых строк после него (иначе возможно появление ошибки при загрузке страницы).

В четвертой строке необходимо указать ID категорий, которые надо скрыть. Заметьте, что указывать их надо со знаком «дефис» или «минус» в начале.

Обратите внимание, что этот код работает только с главной страницей блога, а в RSS-ленте рубрики останутся. Так, например, если вы добавляли свой сайт в каталоги RSS-лент, то записи из нежелательной рубрики попадут в каталоги. Поэтому, если вы хотите также скрыть рубрики в RSS ленте, а не только с главной страницы, в код надо будет внести небольшие изменения:

Точно также, как и в предыдущем примере, нужно заменить ID рубрик на те, которые надо убрать с главной страницы блога и из RSS-ленты.

Как видите, в том, чтобы удалить с главной некоторые рубрики, нет ничего сложного. Но если у вас остались какие-то вопросы, пишите в комментарии, будем разбираться 🙂




36 комментариев к “Скрываем записи определенных рубрик с главной страницы”

  1. Александр

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

    Ответить
    • Ирина

      Александр, у меня этот способ работал всегда, никаких проблем не возникало. Возможно, все дело в шаблоне, например, где-то в цикле вывода записей на главной странице прописаны другие рубрики.

      Ответить
      • Вадим

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

        А с плагинами хорошо, так как при обновлении настройки остаются те которые были заданы, согласен плагины грузят и добавляют куча ненужного кода, возможно есть альтернатива?

        Ответить
        • Ирина

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

          Ответить
  2. Александр

    Добрый день! Скажите пожалуйста, как можно скрыть вывода описания рубрик со страницы. Вообще не пойму, для чего это нужно в такой не красивой форме.К примеру , если я нажимаю на какую-нибудь рубрику, то высвечивается ч/б текст с описанием рубрики. Переспробовал все, что мог Но похоже моя Тема какая-то особенная…..!?!?!?
    Вот пример http://anekdot-web.ru/category/anekdot/dlya-vzroslyx/

    Если возможно, подскажите пожалуйста.

    Заранее благодарен

    Александр

    Ответить
    • Ирина

      Александр, можно просто удалить описание в консоли: записи — рубрики — изменить.

      Ответить
  3. Александр

    Спасибо ! А нельзя какой-то скрипт просто удалить, который выводит описание рубрики ?

    Ответить
  4. Людмила

    У меня к сожалению это тоже не сработало. Может есть еще какой-нибудь способ исправить это.

    Ответить
  5. Александр

    Добрый день ! Скажите, а можнл одну рубрику запоролить или как это сказать. чтобы вход был только через пароль ?

    Ответить
  6. малыш

    функция хорошая а вот как еще бы запись в архивах не выводить из этой рубрики? просто для слайдера нужны миниатюры а в самих статьях я не хочу что бы они были. может вы поможете

    Ответить
    • Ирина

      Создайте отдельную рубрику для записей в слайдере, и не выводите ее в общем списке рубрик. Если Вы имеете в виду архивы по дате — то никак.

      Ответить
  7. малыш

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

    Прописал же умный человек функцию для home которой и вы и я так успешно пользуемся значит и для этих можно я не знаю php поэтому не пропишу сама думала вы знаете его и сможете подсказать

    Ответить
  8. Ярослав

    Шикарно! Как раз именно это и искал. А то у меня специфичная тема и она по-другому сделана, а надругих сайтах все говорили, что надо основной цикл менять и т.д. А тут одной простой функцией! Просто и лаконично! большое спасибо! Применил это у себя на сайте. Еще раз огромное спасибо!

    Ответить
  9. Федор

    полезный хак. спасибо. но вот подскажите как удалить с главной не рубрику, с каким-то ID а весь тип материалов, который я сам создал?

    Ответить
    • Ирина

      Вообще, по-умолчанию пользовательские типы записей на главной не должны выводиться. Попробуйте использовать на главной такой код:

      Ответить
  10. Татьяна

    Большое спасибо автору! Как раз то, что нужно.

    Ответить
  11. Евгений Летов

    Ирина, я сделал по вашему совету на этом сайте http://hellomoda.ru/. Теперь при пагинации на 2-ой и далее страницах появляются посты из скрытых рубрик.

    Как быть?

    Ответить
  12. Арсений

    Спасибо за пост! Но вот хотел бы спросить, как скрыть записи с главной страницы, но не рубрику, т.е. чтобы она отображалась на главной вместе со всеми рубриками, но когда человек заходит в нее (рубрику) в ней отображались все записи, которые в ней состоят. Заранее спасибо!

    Ответить
  13. Влад

    Здравствуйте данный урок мне очень помогло, но хотел узнать в каком файле можно отредактировать каталоги RSS-лент ? то есть RSS

    Ответить
  14. Вадим

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

    Ответить
    • Секрет

      К сожалению, при выходе новой версии WP есть проблемы совместимости с плагином — особенно грешит этим последняя на сегодня версия 4.1, которая уже не работает с известным плагином ACE (((((

      Ответить
      • Ирина

        Это не проблема нового вордпресс, это проблема разработчика плагина. Перед каждым major релизом, команда вордпресс отправляет письма всем разработчикам плагинов и просит проверить их на совместимость с новой версией и при необходимости, доработать. Если разработчики этого не сделали, то команда вордпресс в этом не виновата.

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

        Ответить
  15. Дмитрий

    А можно ли добавить код с помощью дочерней темы?

    Ответить
    • Ирина

      Дмитрий, можно, точно также, в файле functions.php

      Ответить
      • Дмитрий

        Со style.css всё понятно описано- @import url копирует материнский код. А как для functions.php организовать- неужели только копировать целиком файл в дочернюю тему, а потом уже дописывать Ваш код?
        з.ы. Если что- извините, я начинающий 🙂

        Ответить
        • Ирина

          Нет, просто создаете в папке дочерней темы файл functions.php (изначально пустой), а в него копируете мой код. Код из родительской темы копировать не нужно.
          То же самое, кстати, и с файлом style.css, его тоже не нужно импортировать из родительской темы.

          Ответить
  16. Фёдор

    Здравствуйте. Очень полезной оказалась функция фильтрации. Но у записи есть комментарии, и они появляются в ленте новых комментариев. Подскажите, как убрать из ленты новых коментариев комментарии конкретной записи (то есть с главной страницы)? Спасибо.

    Ответить
  17. ярослав

    как убрать вывод постов в определенных рубриках, а не наглавной ? заранее спасибо.

    Ответить
  18. Marin

    Спасибо тебе. Помогло

    Ответить
  19. ПозитивуДА

    Благодарю! Как раз искал метод, как просто это сделать. Выше был вопрос про пагинацию, не ответите на него?
    Ещё заметил, что «Хлебные крошки» всё равно выводят скрытую статью, если просматривается соседняя запись. Какую функцию используют Хлебные крошки, не подскажете как доработать под это ваш код?

    Ответить
  20. ПозитивуДА

    О, и ещё вопрос, как Вы сделали форму «Спасибо за первый комментарий»? ))
    Плагин какой-то?

    Ответить

Оставить комментарий