Пример RSS-канала
<rss
xmlns:yandex="http://news.yandex.ru"
xmlns:media="http://search.yahoo.com/mrss/"
xmlns:turbo="http://turbo.yandex.ru"
version="2.0"
>
<channel>
<item turbo="true">
<link>http://www.example.com/page1.html</link>
<turbo:content>
<![CDATA[
<header>
<figure>
<img src="http://example.com/img.jpg" />
</figure>
<h1>Заголовок страницы</h1>
</header>
<h2>Заголовок страницы</h2>
<p>Текст с <b>выделением</b> и списком:</p>
<ul>
<li>пункт 1;</li>
<li>пункт 2.</li>
</ul>
<figure>
<img src="http://example.com/img-for-video.jpg" />
<figcaption>Подпись к картинке</figcaption>
</figure>
<iframe
width="560"
height="315"
src=
"https://www.youtube.com/embed/<уникальный набор символов>"
frameborder="0"
allowfullscreen
</iframe>
]]>
</turbo:content>
</item>
</channel>
</rss>
Где можно подкоректировать вывод RSS под стандарт Яндекса?
В файл /common/classes/modules/rss/entity/Rss.entity.class.php нужно добавить к функции несколько строчек (которых у вас нет):
public function __construct() {
$this->AddRssAttribute('xmlns:atom', 'http://www.w3.org/2005/Atom');
$this->AddRssAttribute('xmlns:dc', 'http://purl.org/dc/elements/1.1/');
$this->AddRssAttribute('xmlns:content', 'http://purl.org/rss/1.0/modules/content/');
$this->AddRssAttribute('xmlns:slash', 'http://purl.org/rss/1.0/modules/slash/');
$this->AddRssAttribute('xmlns:wfw', 'http://wellformedweb.org/CommentAPI/');
$this->AddRssAttribute('xmlns:sy', 'http://purl.org/rss/1.0/modules/syndication/');
$this->AddRssAttribute('xmlns:georss', 'http://www.georss.org/georss');
$this->AddRssAttribute('xmlns:turbo', 'http://turbo.yandex.ru');
}
Результат шапки rss будет таким:
Выводит так
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:georss="http://www.georss.org/georss" xmlns:turbo="http://turbo.yandex.ru" version="2.0">
В файле common/templates/skin/название шаблона/tpls/action/rss/action.rss.index.tpl (или какой у вашего шаблона)нужно сделать так:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" {$oRss->getRssAttributesStr()}>
{foreach $oRss->getChannels() as $oRssChannel}
<channel>
<title>{$oRssChannel->getTitle()}</title>
<link>{$oRssChannel->getLink()}</link>
<description><![CDATA[{$oRssChannel->getDescription()}]]></description>
<language>{$oRssChannel->getLanguage()}</language>
<managingEditor>{$oRssChannel->getManagingEditor()}</managingEditor>
<webMaster>{$oRssChannel->getWebMaster()}</webMaster>
<generator>{$oRssChannel->getGenerator()}</generator>
{foreach $oRssChannel->getItems() as $oRssItem}
<item turbo="true">
<title>{$oRssItem->getTitle()|escape:'html'}</title>
<guid isPermaLink="true">{$oRssItem->getGuid()}</guid>
<link>{$oRssItem->getLink()}</link>
<turbo:content>
<author>{$oRssItem->getAuthor()}</author>
<description><![CDATA[{$oRssItem->getDescription()}]]></description>
<pubDate>{$oRssItem->getPubDate()}</pubDate>
{foreach $oRssItem->getCategories() as $sCategory}
<category>{$sCategory}</category>
{/foreach}
</turbo:content>
</item>
{/foreach}
</channel>
{/foreach}
</rss>
После этого добавляем в яедекс https://сайт.ru/rss и получаем зеленый свет окончания проверки «Без ошибок».
Спасибо DonDenchik за помощь!
10 комментариев
Когда я сменил это на это , то все норм, но когда я вставил после это: <turbo:content>, выдало ошибку.
Шаблон для смены тут: common/templates/skin/название шаблона/tpls/action/rss
This page contains the following errors:
error on line 12 at column 18: Namespace prefix turbo on content is not defined
Below is a rendering of the page up to the first error.
Может где то не в шаблоне менять?
Я правда добавил еще в /common/classes/modules/rss/entity/Rss.entity.class.php это:
Выводит так
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:georss="http://www.georss.org/georss" xmlns:turbo="http://turbo.yandex.ru" version="2.0">
Т,Е, между нужно ставить титл и линк.