Содержание
- 1 Какой урл у RSS ленты сайта WordPress?
- 2 Как отключить RSS на сайте WordPress
- 3 Редирект RSS ленты на feedburner
- 4 Запретить поисковикам индексировать RSS
- 5 Добавить картинки (миниатюры) в RSS
- 6 Как получить RSS ленту отдельной рубрики в WordPress
- 7 Как получить комментарии отдельной записи WordPress в RSS
- 8 Как получить в RSS материалы по отдельным меткам
- 9 Как получить в RSS материалы отдельного автора
- 10 Как получить в RSS материалы по результатам поиска
- 11 Как исключить материалы категорий из RSS-ленты на WordPress
- 12 Как исключить отдельные записи из RSS-ленты на WordPress
- 13 Что делать, если RSS на WordPress содержит ошибки
- 14 Как публиковать записи в RSS с задержкой
- 15 Как добавить подписи к записям в RSS
- 16 Как скрыть часть контента в RSS
Функционал RSS-ленты встроен в WordPress по умолчанию, поскольку движок изначально рассчитан на блоги, а зачастую используется как информационные и новостные сайты. Если мы наберем в браузере наш_сайт.ру/feed - мы и увидим эту саму RSS-ленту. Говоря техническим языком, RSS — семейство XML-форматов, предназначенных для описания лент новостей, анонсов статей, изменений в блогах и т.п. С помощью RSS ленты своего сайта можно информировать своих читателей о новых материалах на своем сайте, транслировать анонсы публикаций на сторонние сайты и сервисы, ускорять индексацию новых материалов и т.д. и т.п.
Программировать RSS-ленту для сайта на WordPress нет необходимости, она уже включена на Вашем блоге. Между тем, если мы попытаемся ее настроить или внести какие-либо изменения в ее работу, то будем очень удивлены, увидев в настройках WordPress (Настройки - Чтение) весьма скудный функционал:
- В RSS-лентах отображать последние (число) элементов
- Для каждой статьи в ленте отображать: а) Полный текст, б) Анонс
Не удивляйтесь, но это все!

Между тем, на практике возникают многочисленные ситуации, когда необходимо вмешаться в работу RSS-ленты на WordPress, а с таким богатым функционалом настройки RSS далеко не уедешь! Данная статья в какой-то мере призвана ответить на часто возникающие вопросы - по настройке и оптимизации RSS лент на сайтах WordPress.
Какой урл у RSS ленты сайта WordPress?
Чтобы не запутаться в этом вопросе, начать надо с того, что WordPress отдает RSS ленту в разных форматах, поэтому и ссылки будут разными:
- ваш_сайт.ru/feed (RSS 2.0)
- ваш_сайт.ru/feed/rdf (RDF/RSS 1.0)
- ваш_сайт.ru/feed/atom (Atom format)
В зависимости от настроек Вашего сайта, они могут открываться по следующим адресам:
- ваш_сайт.ru/wp-rss2.php (RSS 2.0 format)
- ваш_сайт.ru/wp-rdf.php (RDF/RSS 1.0 format)
- ваш_сайт.ru/wp-atom.php (Atom format)
или
- ваш_сайт.ru/?feed=rss2 (RSS 2.0 format)
- ваш_сайт.ru/?feed=rdf (RDF/RSS 1.0 format)
- ваш_сайт.ru/?feed=atom (Atom format)
В WordPress также встроена возможность экспорта комментариев в RSS ленту. Ссылки будут доступны по адресам (для разных форматов RSS):
- ваш_сайт.ru/comments/feed (RSS 2.0 format)
- ваш_сайт.ru/comments/atom (Atom format )
- ваш_сайт.ru/comments/rdf (RDF/RSS 1.0 format)
Как отключить RSS на сайте WordPress
У некоторых вебмастеров возникает необходимость отключить RSS ленту на сайте, сделать ее полностью недоступной. Это можно сделать, как с помощью плагина, так и без плагина.
Отключаем RSS на WordPress с помощью плагина:
Плагины - Добавить новый - Disable RSS (активируем плагин). Этот плагин отключит все RSS/Atom/RDF каналы на вашем сайте.
Отключаем RSS на WordPress без плагина:
В файл functions.php вашей текущей темы добавляем строчки кода:
function fb_disable_feed() { wp_redirect(get_option('siteurl'));//будет осуществляться редирект на главную страницу Вашего сайта } add_action('do_feed', 'fb_disable_feed', 1); add_action('do_feed_rdf', 'fb_disable_feed', 1); add_action('do_feed_rss', 'fb_disable_feed', 1); add_action('do_feed_rss2', 'fb_disable_feed', 1); add_action('do_feed_atom', 'fb_disable_feed', 1); add_action('do_feed_rss2_comments', 'fb_disable_feed', 1); add_action('do_feed_atom_comments', 'fb_disable_feed', 1); remove_action( 'wp_head', 'feed_links_extra', 3 ); remove_action( 'wp_head', 'feed_links', 2 ); remove_action( 'wp_head', 'rsd_link' );
Редирект RSS ленты на feedburner
Многие вебмастера пользуются такими вещами как feedburner или другими перепрожигами RSS лент. В таком случае возникает необходимость редиректа основной ленты в купе с отключением родной RSS. Такая ситуация решается добавлением в файл functions.php вашей текущей темы строчек кода:
function fb_disable_feed() { wp_redirect('http://feeds.feedburner.com/vash_feedburner');exit;//здесь прописать урл на ваш канал в feedburner } add_action('do_feed', 'fb_disable_feed', 1); add_action('do_feed_rdf', 'fb_disable_feed', 1); add_action('do_feed_rss', 'fb_disable_feed', 1); add_action('do_feed_rss2', 'fb_disable_feed', 1); add_action('do_feed_atom', 'fb_disable_feed', 1); add_action('do_feed_rss2_comments', 'fb_disable_feed', 1); add_action('do_feed_atom_comments', 'fb_disable_feed', 1); remove_action( 'wp_head', 'feed_links_extra', 3 ); remove_action( 'wp_head', 'feed_links', 2 ); remove_action( 'wp_head', 'rsd_link' );
Запретить поисковикам индексировать RSS
Часто можно обнаружить в поиске Гоши или Яши странички, в урлах которых встречается /feed/. Разумеется, это мусор и Вам нужно запретить его индексировать (так как поисковики ценят Ваш сайт за полезный контент)! Сделать это можно добавлением в robots.txt строчек:
User-agent: * Disallow: /feed
Добавить картинки (миниатюры) в RSS
Родная WordPress цепляет в RSS лишь текст, несмотря на то, что в самих записях зачастую используются картинки и миниатюры. Но все мы знаем, что с картинками анонс куда привлекательнее и кликабельнее, поэтому задача решается добавлением следующего кода в functions.php вашей текущей темы (данный код добавит в RSS ленту вашего сайта миниатюры с записей):
function insertThumbnailRSS($content) { global $post; if ( has_post_thumbnail( $post->ID ) ){ get_the_post_thumbnail(array(150,100)); $content = '<div style="float: left; margin: 0px 10px 5px 0px;">'. get_the_post_thumbnail( $post->ID, 'thumbnail' ) . '</div>' . $content; } return $content; } add_filter('the_excerpt_rss', 'insertThumbnailRSS'); add_filter('the_content_feed', 'insertThumbnailRSS');
Как получить RSS ленту отдельной рубрики в WordPress
Для того чтобы получить отдельный RSS поток записей из отдельной рубрики на сайте под управлением WordPress, достаточно дописать в адрес текущей рубрики /feed
Например, ваш_сайт.ru/category/news/feed
Если требуется подключить в RSS несколько рубрик с сайта, это можно сделать их перечислением через запятую:
ваш_сайт.ru/category/news,pogoda,sport/feed
Как получить комментарии отдельной записи WordPress в RSS
Для того чтобы получить отдельный RSS поток комментариев какой-либо записи на сайте под управлением WordPress, достаточно дописать в адрес текущей записи/страницы /feed
Например, ваш_сайт.ru/название_статьи.html/feed
Как получить в RSS материалы по отдельным меткам
Для того чтобы получить в RSS записи, в которых встречаются отдельные метки, достаточно прописать метки в урле (в примере ниже мы получим лишь записи с тегом seo (не забывайте о том, что их можно перечислять через запятую):
Например, ваш_сайт.ru/tag/seo/feed
Как получить в RSS материалы отдельного автора
Если сайт на WordPress большой, иногда полезно получить в RSS материалы отдельного автора. Для того чтобы получить в RSS записи отдельного автора, достаточно прописать имя автора в урле (в примере ниже мы получим лишь записи, у которых автор admin):
ваш_сайт.ru/author/admin/feed/
Как получить в RSS материалы по результатам поиска
Можно получить в RSS на WordPress и записи по результатам какого-либо поискового запроса. Для этого нужно сформировать урл по принципу (в примере, выводим в RSS записи, найденные по запросу "seo"):
ваш_сайт.ru/?s=seo&feed=rss2
Как исключить материалы категорий из RSS-ленты на WordPress
Бывают ситуации, что в RSS не нужно отдавать материалы некоторых рубрик (например, некоторых не целевых рубрик, рубрик с продажными статьями и т.д.). Исключить отдельные рубрики из ленты можно по id (id рубрики можно узнать в админке, наведя мышку на название рубрике и подсмотрев значение tag_ID в строке состояния браузера). Данный код добавляем в файл functions.php текущей темы:
function ac_exclude_from_rss($query) { $cats_to_exclude = array( 64, 16); //перечисляем через запятую id рубрик, материалы которых нужно исключить из RSS if ($query->is_feed && !$query->is_category($cats_to_exclude) ) { set_query_var('category__not_in', $cats_to_exclude); } return $query; } add_filter('pre_get_posts','ac_exclude_from_rss');
Как исключить отдельные записи из RSS-ленты на WordPress
Бывают и ситуации, когда нужно исключить из RSS-ленты отдельно взятые записи, но поскольку они могут находится в разных рубриках, отключение целой рубрики из RSS не поможет. Также нецелесообразно отключать записи каждый раз редактированием файла functions.php, поэтому придется ставить плагин, чтобы удобно из админки в редакторе каждой записи опционально включать и выключать запись из RSS ленты.
Плагины - Добавить новый - Skip RSS (плагин выключает отдельно взятые записи из RSS-ленты WordPress
Что делать, если RSS на WordPress содержит ошибки
Не часто, но текст в записях может содержать спецсимволы, которые попадая в RSS, ломают ее. Бывают и другие ситуации: RSS не запускается и все тут. Возникают ошибки, типа:
XML Parsing Error: XML or text declaration not at start of entity
или
line 1, column 1: Blank line before XML declaration
... и другие
Такую RSS могут прочитать не все, поэтому требуется ее ремонт. Для восстановления работоспособности и профилактики от подобных случаев, есть плагин "Fix My Feed RSS Repair"
Как публиковать записи в RSS с задержкой
Запись после публикации на сайте WordPress автоматически появляется в RSS. Бывают случаи, когда нужно этому воспрепятствовать: например, вы хотите, чтобы о Вашей новой записи узнали сначала читатели на сайте, а лишь потом все подписчики по RSS и различные ридеры, которые читают Вашу ленту! Для таких целей подойдет плагин "Feed Pauser" - он дает возможность задать задержку, с которой будут публиковаться записи в RSS (также есть возможность исключения определенных записей из RSS).
Как добавить подписи к записям в RSS
Материалы, отдаваемые в RSS, можно подписать, а также ограничить по размеру, что отчасти направлено на борьбу с воровством контента (в паре с вышеназванным плагином "Feed Pauser"), которое зачастую как раз и происходит с помощью RSS-лент. В этой связи не вышел из моды, хоть и старый, но действенный плагин Ozh Better Feed
Как скрыть часть контента в RSS
Наконец, Вам понадобилось скрыть часть контента в RSS, к примеру, вы публикуете в записи ответ на какой-то вопрос, но не хотите чтобы он попал в RSS, а был виден лишь непосредственно на сайте. Вам понадобится плагин "RSSless". Теперь, при создании записи, обрамите (в HTML-режиме редактора) нужный текст записи в теги [rssless]...[/rssless] и он не появится в RSS ленте.
...Естественно, ситуации c RSS на сайтах WordPress могут быть разными и я не сомневаюсь, что сил моих всех предусмотреть и на все дать ответ - нет! Между тем, я постарался дать ответы и рекомендации на часто встречающиеся в моей практике ситуации. Если Вы не нашли ответа на свою проблему, спрашивайте в комментариях... Любезно отвечу и постараюсь помочь!
Подскажите, пожалуйста, как сократить количество символов анонса в RSS-ленте WordPress?
Анонс в RSS формируется функцией the_excerpt_rss(). Чтобы изменить размер выводимых символов (по умолчанию - установленный размер короткого описания - 55 слов контента), нужно вызвать хук в function.php текущем темы:
Число 150 в данном коде меняете на свое. 150 - это число символов! Это число может быть лишь меньше the_excerpt (55 слов)
А у меня постоянно появляются страницы с переадресацией вот с такие: ?page_id=554&pre . Как с этим можно побороться?
Слишком мало данных, чтобы Вам помочь.
Вот такие страницы

Это так называемые "короткие ссылки", чтобы их отключить, добавьте в файл functions.php вашей текущей темы:
Также в robots.txt не помешает добавить строки:
Я уже нашел ответ в интернете, но за отзывчивость спасибо. Кликну вам по рекламе (-:
привет, у меня есть сайт и я парсю rss с других сайтов, парсинг приходит с непонятной фразой которую описали тут выше "впервые появилась"

понятно что это прописано в настройках сайта с которого идет парсинг... но как мне убрать эту запись на своем сайте?
в настройках моего рсс парсера есть такая функция
но я не понимаю что там нужно прописывать... сломал уже голову, облазил все источники... какое то регулярное выражение то ли просит составить, то ли код вписать для удаления этого текста или замены его на другой..
буду рад любой помощи или совету.
спасибо.
не подскажешь, уважаемый, есть ли метод спарсить весь конетнт по rss? 20 записей маловато(
Смотрите в сторону Sitemap
Инструмент для извлечения урлов из карты https://tools.seo-zona.ru/sitemaps.html
добрый день
в последнее время, переодически исчезает файл index.php
не подскажете в чем может быть проблема
Версии две:
Приветствую! Спасибо за полезный материал. А не подскажите как сделать рсску отдельную в случае когда есть рубрики и их подрубрики?
Например есть такая структура рубрик:
рубрика Новости - /news
подрубрика Регионы - /news/region
подрубрика Мир - /news/mir
рубрика Проекты - /projects
подрубрика Наше - /projects/nashe
подрубрика Здоровье - /projects/zdorovie
возможно ли сделать ссылку на рсску в которой будут только записи из Мир и Наше, получается типа такого .../news/mir,/projects/nashe/feed но оно понятное дело не работает. такой вариант записи тоже не катит .../mir,nashe/feed
Яндекс.Новости ругаются: требуют исключить из экспортного файла технические данные (в частности, текст, который приводится в конце каждой новости - "Отправить в редакцию свою новость!"). Вас не затруднит подсказать, как это реализовать?
Найдите в плагине переменную, в которую передается содержимое поста. Допустим, это $yandexfull. Прочитаем эту переменную и если найдем в ней "«Отправить в редакцию свою новость!»", то вырежем:
Добавить картинки (миниатюры) в RSS
После добавления твоего ёб... кода пропали иконки RSS. Теперь думаю как вернуть, удаление кода не помогло. Советчики херовы
Если код убрали, то и функция не будет работать. Никуда ничего не записывается и не может ломаться. Если проблема не исчезла, смотрите в сторону кеша (как в браузере, так и на сайте).
Здравствуйте. Скажите, как открыть ленту RSS-канал - для яндекса Турбо-страницы. Возникает ошибка - Ошибка валидации - Не удалось скачать RSS-канал (N / aURL запрещён к индексированию тегом noindex)?
Используйте плагин Yandex.News Feed by Teplitsa - у Турбо-страниц Яндекса свой формат.
Спасибо, работает нормально.
Есть плагин которые бесплатно дает возможность подписаться на новости и обновление?
feedburner.google.com
Спасибо, очень полезная статься. С одной проблемой столкнулся, нигде не могу найти ответ. Вот такой rss получается на выходе: http://joxi.ru/RmzbXJquWaLZvm
Не могу понять что это в конце описания 'Запись ... впервые появилась' и как его убрать. Вы не в курсе?
Скорее всего это встроено в функционал вашей темы (там же и сможете вырезать)
Спасибо.
Тема самописная, моя. Отключал все плагины, очищал полностью function.php все оставалось по прежнем. Может оно где-то кешируется?
1) Смените на время тему сайта (на любую), проверьте.
2) Если не исчезло на первом этапе, переименуйте папку plugins в plugins_ Проверьте, потом верните старое значение названия папки.
Так вы определите источник для дальнейшего поиска. В первом случае - источник ТЕМА. Во-втором - какой-то ПЛАГИН
В принципе я и первый раз по сути делал аналогичные действия.
Но и после тех действий что вы написали, в feed ничего не изменилось.
Если не изменилось ничего, версий остается две:
- у вас не чистая сборка WP
- данные RSS кешируются.
Эту запись добавляет модуль SEO by Yoast. В настройках в разделе "Дополнительно" - "RSS" можно выключить.
Спасибо тебе, добрый человек, пол-часа искал эту гадость!
как выключить, если кнопки нет?..... подскажите, плиз...
Галина, о какой кнопке речь?
Дополнительно - Yoast SEO - Настройки RSS канала - Контент ставить после каждого сообщения: Запись %%POSTLINK%% впервые появилась %%BLOGLINK%%.
Уже отключил. Есть еще вопрос. Сейчас есть RSS лента которая встроена в вордпресс. Но между картинкой текстом очень малый промежуток. Один товарищ советует вставить style="padding:0 10px 5px 0; только куда он не сказал. Вставлял в добавку к файлу functions , где прописывается добавление картинок, но ничего не изменилось.
как отключить FeedBurner
Отключить FeedBurner от чего?