WordPress 3.1, как убрать посты из определенной категории с главной страницы и RSS?

Вам, как и Мне может понадобиться возможность того, чтобы некоторые сообщения, которые вы пишете в свой блог на WordPress не попадали на главную страницу или в RSS ленту. Причины для этого могут быть разные. Возможно, в эту категорию вы пишете отвлеченные заметки и не хотите, чтобы подписчики получали их по rss. Либо размещаете статьи с того же Миралинкс, и не хотите, чтобы они попадали на главную страницу и rss.

До недавнего времени Я пользовался фильтром, который внес в файл functions.inc, и все прекрасно работало. Но вот, в один прекрасный, или не очень момент, Я решил обновить  свой WP на последнюю версию 3.1. И меня ждал неприятный сюрприз. Несколько постов, которые не должны были быть видны, попали в rss. Ну, это конечно не смертельно, но неприятно.

Изменения в WordPress 3.1

Обновления WordPress, принесли изменения, которые поменяли принцип работы фильтров, и проведя некоторое время в поиске информации – Я, наконец, нашел, что же случилось. А точнее, что необходимо сделать, чтобы все вернулось на свои места.

Что необходимо сделать?

Нужно обновить исходный код фильтра, отредактировав файл functions.php.

Новый код фильтра:

function exclude_category($query) {
    if ( $query->is_feed or $query->is_home ) {
        $query->set('category__not_in', array(1, 2, 3));
    }
    return $query;
}
add_filter('pre_get_posts', 'exclude_category');

Этот код убирает все посты из категорий с идентификаторами 1, 2, 3 с главной и из rss ленты. Если вам необходимо что – то одно, уберите соответствующую проверку (is_feed или is_home).

Чтобы узнать идентификатор рубрики, перейдите в раздел рубрик в админке, и кликнув на изменение параметров необходимой рубрики в строке адреса сайта найдите текст tag_ID=XX, собственно XX – это и есть идентификатор рубрики, который необходимо вписать в код фильтра.

За найденное решение спасибо автору блога Hyper SEO, а вот его статья об этой проблеме.

 

If you enjoyed this post, make sure you subscribe to my RSS feed!

Похожие записи:

5 комментариев на запись “WordPress 3.1, как убрать посты из определенной категории с главной страницы и RSS?”

  1. Хайпер пишет:

    Здравствуйте. Спасибо за упоминание моей статьи! А у вас в посте почему-то старый код, а не новый

  2. Bzzz пишет:

    Ой, большое спасибо, что отписались и заметили ошибку.
    Перепутал код, который вставил в пост 🙁 … уже обновил информацию.

  3. Роман пишет:

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

  4. Bzzz пишет:

    Спасибо за замечание. Действительно functions.php, исправил в тексте поста.

  5. Сергей пишет:

    Ай спасибо, незнал что в 3.1 другой код)

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