Полное удаление фидов в WordPress

Я не могу указать на большое количество причин, по которым вы можете задуматься над тем, чтобы удалить свои фиды, однако с одной из таких причин я недавно столкнулся при обслуживании клиентского сайта. Клиент попросил меня, чтобы я создал приватный WordPress сайт, доступный только для платных участников. С помощью программного обеспечения Amember я сделал жизнеспособный сайт, однако, чтобы в действительности скрыть весь контент от посторонних людей, мне пришлось отключить RSS каналы, поскольку через них любой человек может получить весь контент.

Как я это сделал? Очень просто: я написал отдельную функцию, которая скрывала бы все RSS-фиды. Эта функция учитывает различные версии каналов, которые поддерживаются в WordPress: RSS, RDF и Atom. Таким образом, все, что вы должны сделать, это добавить в файл functions.php следующий фрагмент кода (а еще лучше — создать отдельный функциональный плагин):

function disable_all_feeds() {
   wp_die( __('Sorry, our content is not available by RSS. Please head over to <a href="'. get_bloginfo('url') .'">our site</a>') );
}

add_action('do_feed', 'disable_all_feeds', 1);
add_action('do_feed_rdf', 'disable_all_feeds', 1);
add_action('do_feed_rss', 'disable_all_feeds', 1);
add_action('do_feed_rss2', 'disable_all_feeds', 1);
add_action('do_feed_atom', 'disable_all_feeds', 1); 

http://www.doitwithwp.com/completely-remove-rss-feeds-in-wordpress/

Блог про WordPress
Комментарии: 12
  1. HotIce

    О! Спасибо. Утащу-ка я в копилку. На сегодня жадность успокоена. ;)

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

    1. Дмитрий (автор)

      Рад, что помогло! Может, заодно и подскажешь, для каких еще целей сия функция может быть полезна? Чтобы контент не перли? Его и так могут спереть при особом желании..

  2. HotIce

    Именно для этого я и искал подобное. Но вот подобного решения не видел, все извраты через ковыряние кода движка, а вот через заглушки не нашел тогда. Я у себя тестировал задержку отправки в фид нового поста, это на случай автоматического парсинга ленты врагами. Функция на столько же строк. Смысл — заинтересованные поисковики успевают все захавать. Ее потом и оставил.

    Для чего еще? А просто чтоб не лезли, а чтоб нагрузку на хостинг снижать, да мало ли.. Я вот не очень люблю, к примеру, чтоб информация расходилась путями, которые я не контролирую.

    А так видишь, как удачно — бац, и такое лекарство для моих тараканов. ;) Пригодится может, потому и спасибо. Кстати, чтоб не плодить сущности, и за предыдeщий пост — также сенкс. Оно мне не надо, но информация полезная. И на каждом шагу не валяется. А так как, придти и сказать "спасибо, может пригодиться" и отвалить, на мой взгляд не самое комильфо, то все же скажу спасибо с оказией. ;)

  3. Игорь

    Еще не мешало бы удалить ссылки на фиды в head:

    remove_action( 'wp_head', 'feed_links_extra', 3 );

    remove_action( 'wp_head', 'feed_links', 2 );

  4. Андрей

    Не работает в моей теме(

  5. Волшебник

    Я успешно удалил фиды с помощью этого простого плагина.
    http://wordpress.org/plugins/disable-feeds/

    Для чего вообще удалять фиды? Ну вот что написано в описании плагина: «It is useful if you use WordPress purely as a content management system (and not for blogging).» Т.е. сайту фиды не нужны. Ну и чтоб не облегчать жизнь разным умельцам, хотя они так растащат, но всё же.

  6. Виктор

    Очень полезная статья.Пригодилось так как мой фид стал глючить.Гуглил гуглил а ответ нашел только на вашем сайте!

  7. greench

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

    1. Дмитрий (автор)

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

  8. greench

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

  9. Наталья

    скажите, а разве нельзя просто удалить файлы feed в файловом менеджере на хостинге, или в них что-то еще «вшито», может что-то нарушиться?

    1. Дмитрий (автор)

      Нужно отключать сам механизм их создания и доступа к ним.

Добавить комментарий для Андрей Отменить ответ

Получать новые комментарии по электронной почте.