WordPress как платформа изначально рассчитан на блоги и информационные сайты. Потому в него по умолчанию уже включен функционал RSS-ленты — остается только понять, как настроить 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.
Какой урл у 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 вашей текущей темы добавляем строчки кода:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<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>
|
Редирект RSS ленты на feedburner
Многие вебмастера пользуются такими вещами как feedburner или другими перепрожигами RSS лент. В таком случае возникает необходимость редиректа основной ленты в купе с отключением родной RSS. Такая ситуация решается добавлением в файл functions.php вашей текущей темы строчек кода:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<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>
|
Запретить поисковикам индексировать RSS
Часто можно обнаружить в поиске Гоши или Яши странички, в урлах которых встречается /feed/. Разумеется, это мусор и Вам нужно запретить его индексировать (так как поисковики ценят Ваш сайт за полезный контент)! Сделать это можно добавлением в robots.txt строчек:
1
2
|
<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>
|
Добавить картинки (миниатюры) в RSS
Родная WordPress цепляет в RSS лишь текст, несмотря на то, что в самих записях зачастую используются картинки и миниатюры. Но все мы знаем, что с картинками анонс куда привлекательнее и кликабельнее, поэтому задача решается добавлением следующего кода в functions.php вашей текущей темы (данный код добавит в RSS ленту вашего сайта миниатюры с записей):
1
2
3
4
5
6
7
8
9
10
|
<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»>—></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»>‘<div style=»float: left; margin: 0px 10px 5px 0px;»>’</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»>—></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»>‘</div>’</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
Для того чтобы получить отдельный 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 текущей темы:
1
2
3
4
5
6
7
8
|
<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»>—></span><span class=«pln»>is_feed </span><span class=«pun»>&&</span> <span class=«pun»>!</span><span class=«pln»>$query</span><span class=«pun»>—></span><span class=«pln»>is_category</span><span class=«pun»>(</span><span class=«pln»>$cats_to_exclude</span><span class=«pun»>)</span> <span class=«pun»>)</span> <span class=«pun»>{</span><span class=«pln»>
set_query_var</span><span class=«pun»>(</span><span class=«str»>‘category__not_in’</span><span class=«pun»>,</span><span class=«pln»> $cats_to_exclude</span><span class=«pun»>);</span>
<span class=«pun»>}</span>
<span class=«kwd»>return</span><span class=«pln»> $query</span><span class=«pun»>;</span>
<span class=«pun»>}</span><span class=«pln»>
add_filter</span><span class=«pun»>(</span><span class=«str»>‘pre_get_posts’</span><span class=«pun»>,</span><span class=«str»>‘ac_exclude_from_rss’</span><span class=«pun»>);</span>
|
Как исключить отдельные записи из 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 могут быть разными и я не сомневаюсь, что сил моих всех предусмотреть и на все дать ответ – нет! Между тем, я постарался дать ответы и рекомендации на часто встречающиеся в моей практике ситуации. Если Вы не нашли ответа на свою проблему, спрашивайте в комментариях… Любезно отвечу и постараюсь помочь!
Статья взята из открытых источников: https://seo-zona.ru/rss-lenta-v-wordpress-vse-chto-vy-xoteli-sprosit-2015-06-13.html