RSS лента в WordPress

Опубликовано: 01.09.2018

видео RSS лента в WordPress

Настройка RSS ленты и формы подписки в WordPress

WordPress как платформа изначально рассчитан на блоги и информационные сайты. Потому в него по умолчанию уже включен функционал RSS-ленты — остается только понять, как настроить rss ленту wordpress и как сделать ее более красивой.


Уроки WordPress. Как установить RSS ленту на сайт WordPress

Содержание

1 Какой урл у RSS ленты сайта WordPress? 2 Как отключить RSS на сайте WordPress 2.1 Отключаем RSS на WordPress с помощью плагина: 2.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.

Чтобы не запутаться в этом вопросе, начать надо с того, что 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 ленту на сайте, сделать ее полностью недоступной. Это можно сделать, как с помощью плагина, так и без плагина.

Плагины – Добавить новый – Disable RSS (активируем плагин). Этот плагин отключит все RSS/Atom/RDF каналы на вашем сайте.

В файл functions.php вашей текущей темы добавляем строчки кода:

< span class = "kwd" > function < / span > < span class = "pln" > fb_disable_feed < / span > < span class = "pun" > ( ) < / span > < span class = "pun" > { < / span > < span class = "pln" >

wp_redirect < / span > < span class = "pun" > ( < / span > < span class = "pln" > get_option < / span > < span class = "pun" > ( < / span > < span class = "str" > 'siteurl' < / span > < span class = "pun" > ) ) ; < / span > < span class = "com" > //будет осуществляться редирект на главную страницу Вашего сайта</span>

< span class = "pun" > } < / span > < span class = "pln" >

add_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'do_feed' < / span > < span class = "pun" > , < / span > < span class = "str" > 'fb_disable_feed' < / span > < span class = "pun" > , < / span > < span class = "lit" > 1 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

add_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'do_feed_rdf' < / span > < span class = "pun" > , < / span > < span class = "str" > 'fb_disable_feed' < / span > < span class = "pun" > , < / span > < span class = "lit" > 1 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

add_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'do_feed_rss' < / span > < span class = "pun" > , < / span > < span class = "str" > 'fb_disable_feed' < / span > < span class = "pun" > , < / span > < span class = "lit" > 1 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

add_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'do_feed_rss2' < / span > < span class = "pun" > , < / span > < span class = "str" > 'fb_disable_feed' < / span > < span class = "pun" > , < / span > < span class = "lit" > 1 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

add_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'do_feed_atom' < / span > < span class = "pun" > , < / span > < span class = "str" > 'fb_disable_feed' < / span > < span class = "pun" > , < / span > < span class = "lit" > 1 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

add_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'do_feed_rss2_comments' < / span > < span class = "pun" > , < / span > < span class = "str" > 'fb_disable_feed' < / span > < span class = "pun" > , < / span > < span class = "lit" > 1 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

add_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'do_feed_atom_comments' < / span > < span class = "pun" > , < / span > < span class = "str" > 'fb_disable_feed' < / span > < span class = "pun" > , < / span > < span class = "lit" > 1 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

remove_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'wp_head' < / span > < span class = "pun" > , < / span > < span class = "str" > 'feed_links_extra' < / span > < span class = "pun" > , < / span > < span class = "lit" > 3 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

remove_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'wp_head' < / span > < span class = "pun" > , < / span > < span class = "str" > 'feed_links' < / span > < span class = "pun" > , < / span > < span class = "lit" > 2 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

remove_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'wp_head' < / span > < span class = "pun" > , < / span > < span class = "str" > 'rsd_link' < / span > < span class = "pun" > ) ; < / span >

Многие вебмастера пользуются такими вещами как feedburner или другими перепрожигами RSS лент. В таком случае возникает необходимость редиректа основной ленты в купе с отключением родной RSS. Такая ситуация решается добавлением в файл functions.php вашей текущей темы строчек кода:

< span class = "kwd" > function < / span > < span class = "pln" > fb_disable_feed < / span > < span class = "pun" > ( ) < / span > < span class = "pun" > { < / span > < span class = "pln" >

wp_redirect < / span > < span class = "pun" > ( < / span > < span class = "str" > 'http://feeds.feedburner.com/vash_feedburner' < / span > < span class = "pun" > ) ; < / span > < span class = "kwd" > exit < / span > < span class = "pun" > ; < / span > < span class = "com" > //здесь прописать урл на ваш канал в feedburner </span>

< span class = "pun" > } < / span > < span class = "pln" >

add_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'do_feed' < / span > < span class = "pun" > , < / span > < span class = "str" > 'fb_disable_feed' < / span > < span class = "pun" > , < / span > < span class = "lit" > 1 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

add_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'do_feed_rdf' < / span > < span class = "pun" > , < / span > < span class = "str" > 'fb_disable_feed' < / span > < span class = "pun" > , < / span > < span class = "lit" > 1 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

add_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'do_feed_rss' < / span > < span class = "pun" > , < / span > < span class = "str" > 'fb_disable_feed' < / span > < span class = "pun" > , < / span > < span class = "lit" > 1 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

add_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'do_feed_rss2' < / span > < span class = "pun" > , < / span > < span class = "str" > 'fb_disable_feed' < / span > < span class = "pun" > , < / span > < span class = "lit" > 1 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

add_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'do_feed_atom' < / span > < span class = "pun" > , < / span > < span class = "str" > 'fb_disable_feed' < / span > < span class = "pun" > , < / span > < span class = "lit" > 1 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

add_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'do_feed_rss2_comments' < / span > < span class = "pun" > , < / span > < span class = "str" > 'fb_disable_feed' < / span > < span class = "pun" > , < / span > < span class = "lit" > 1 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

add_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'do_feed_atom_comments' < / span > < span class = "pun" > , < / span > < span class = "str" > 'fb_disable_feed' < / span > < span class = "pun" > , < / span > < span class = "lit" > 1 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

remove_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'wp_head' < / span > < span class = "pun" > , < / span > < span class = "str" > 'feed_links_extra' < / span > < span class = "pun" > , < / span > < span class = "lit" > 3 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

remove_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'wp_head' < / span > < span class = "pun" > , < / span > < span class = "str" > 'feed_links' < / span > < span class = "pun" > , < / span > < span class = "lit" > 2 < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

remove_action < / span > < span class = "pun" > ( < / span > < span class = "str" > 'wp_head' < / span > < span class = "pun" > , < / span > < span class = "str" > 'rsd_link' < / span > < span class = "pun" > ) ; < / span >

Часто можно обнаружить в поиске Гоши или Яши странички, в урлах которых встречается /feed/. Разумеется, это мусор и Вам нужно запретить его индексировать (так как поисковики ценят Ваш сайт за полезный контент)! Сделать это можно добавлением в robots.txt строчек:

< span class = "typ" > User < / span > < span class = "pun" > - < / span > < span class = "pln" > agent < / span > < span class = "pun" > : < / span > < span class = "pun" > * < / span >

< span class = "typ" > Disallow < / span > < span class = "pun" > : < / span > < span class = "pun" > / < / span > < span class = "pln" > feed < / span >

Родная WordPress цепляет в RSS лишь текст, несмотря на то, что в самих записях зачастую используются картинки и миниатюры. Но все мы знаем, что с картинками анонс куда привлекательнее и кликабельнее, поэтому задача решается добавлением следующего кода в functions.php вашей текущей темы (данный код добавит в RSS ленту вашего сайта миниатюры с записей):

< span class = "kwd" > function < / span > < span class = "pln" > insertThumbnailRSS < / span > < span class = "pun" > ( < / span > < span class = "pln" > $ content < / span > < span class = "pun" > ) < / span > < span class = "pun" > { < / span >

< span class = "kwd" > global < / span > < span class = "pln" > $ post < / span > < span class = "pun" > ; < / span >

< span class = "kwd" > if < / span > < span class = "pun" > ( < / span > < span class = "pln" > has_post_thumbnail < / span > < span class = "pun" > ( < / span > < span class = "pln" > $ post < / span > < span class = "pun" > - & gt ; < / span > < span class = "pln" > ID < / span > < span class = "pun" > ) < / span > < span class = "pun" > ) { < / span > < span class = "pln" >

get_the_post_thumbnail < / span > < span class = "pun" > ( < / span > < span class = "pln" > array < / span > < span class = "pun" > ( < / span > < span class = "lit" > 150 < / span > < span class = "pun" > , < / span > < span class = "lit" > 100 < / span > < span class = "pun" > ) ) ; < / span > < span class = "pln" >

$ content < / span > < span class = "pun" >= < / span > < span class = "str" > '&lt;div style="float: left; margin: 0px 10px 5px 0px;"&gt;' < / span > < span class = "pun" > . < / span > < span class = "pln" > get_the_post_thumbnail < / span > < span class = "pun" > ( < / span > < span class = "pln" > $ post < / span > < span class = "pun" > - & gt ; < / span > < span class = "pln" > ID < / span > < span class = "pun" > , < / span > < span class = "str" > 'thumbnail' < / span > < span class = "pun" > ) < / span > < span class = "pun" > . < / span > < span class = "str" > '&lt;/div&gt;' < / span > < span class = "pun" > . < / span > < span class = "pln" > $ content < / span > < span class = "pun" > ; < / span >

< span class = "pun" > } < / span >

< span class = "kwd" > return < / span > < span class = "pln" > $ content < / span > < span class = "pun" > ; < / span >

< span class = "pun" > } < / span > < span class = "pln" >

add_filter < / span > < span class = "pun" > ( < / span > < span class = "str" > 'the_excerpt_rss' < / span > < span class = "pun" > , < / span > < span class = "str" > 'insertThumbnailRSS' < / span > < span class = "pun" > ) ; < / span > < span class = "pln" >

add_filter < / span > < span class = "pun" > ( < / span > < span class = "str" > 'the_content_feed' < / span > < span class = "pun" > , < / span > < span class = "str" > 'insertThumbnailRSS' < / span > < span class = "pun" > ) ; < / span >

Для того чтобы получить отдельный RSS поток записей из отдельной рубрики на сайте под управлением WordPress, достаточно дописать в адрес текущей рубрики /feed

Например, ваш_сайт.ru/category/news/feed

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

ваш_сайт.ru/category/news,pogoda,sport/feed

Для того чтобы получить отдельный RSS поток комментариев какой-либо записи на сайте под управлением WordPress, достаточно дописать в адрес текущей записи/страницы /feed

Например, ваш_сайт.ru/название_статьи.html/feed

Для того чтобы получить в RSS записи, в которых встречаются отдельные метки, достаточно прописать метки в урле (в примере ниже мы получим лишь записи с тегом seo (не забывайте о том, что их можно перечислять через запятую):

Например, ваш_сайт.ru/tag/seo/feed

Если сайт на WordPress большой, иногда полезно получить в RSS материалы отдельного автора. Для того чтобы получить в RSS записи отдельного автора, достаточно прописать имя автора в урле (в примере ниже мы получим лишь записи, у которых автор admin):

ваш_сайт.ru/author/admin/feed/

Можно получить в RSS на WordPress и записи по результатам какого-либо поискового запроса. Для этого нужно сформировать урл по принципу (в примере, выводим в RSS записи, найденные по запросу “seo”):

ваш_сайт.ru/?s=seo&feed=rss2

Бывают ситуации, что в RSS не нужно отдавать материалы некоторых рубрик (например, некоторых не целевых рубрик, рубрик с продажными статьями и т.д.). Исключить отдельные рубрики из ленты можно по id (id рубрики можно узнать в админке, наведя мышку на название рубрике и подсмотрев значение tag_ID в строке состояния браузера). Данный код добавляем в файл functions.php текущей темы:

< span class = "kwd" > function < / span > < span class = "pln" > ac_exclude_from_rss < / span > < span class = "pun" > ( < / span > < span class = "pln" > $ query < / span > < span class = "pun" > ) < / span > < span class = "pun" > { < / span > < span class = "pln" >

     $ cats_to_exclude < / span > < span class = "pun" >= < / span > < span class = "pln" > array < / span > < span class = "pun" > ( < / span > < span class = "lit" > 64 < / span > < span class = "pun" > , < / span > < span class = "lit" > 16 < / span > < span class = "pun" > ) ; < / span > < span class = "com" > //перечисляем через запятую id рубрик, материалы которых нужно исключить из RSS</span>

     < span class = "kwd" > if < / span > < span class = "pun" > ( < / span > < span class = "pln" > $ query < / span > < span class = "pun" > - & gt ; < / span > < span class = "pln" > is_feed < / span > < span class = "pun" > & amp ; & amp ; <

rss