Экспорт новостей с сайта в "Яндекс Новости"

Аватар пользователя ivnish ivnish 26 июля в 9:07
4

Если вы являетесь СМИ (или ваш клиент является СМИ), то наверняка будет задача экспорта новостей с сайта в "Яндекс Новости". Задача только на первый взгляд кажется сложной.

Итак, что такое "экспорт в Яндекс Новости". Нужно создать RSS ленту определенного формата. 80% нужных нам xml элементов нам может предоставить модуль views_rss. Но для Яндекса этого мало. По документации нужно еще добавить

в заголовок RSS. С этим нам поможет модуль созданный Андреем Березовским (duozersk) - views_rss_yandex и с недавнего времени поддерживаемый мной.

Так же модуль предоставляет элементы:

  • yandex:full-text
  • yandex:genre
  • yandex:enclosure (но он пока не работает должным образом)

Естественно я сразу подготовил версию для Drupal 9+

Однако, включить модули недостаточно. Нужно еще создать представление (views) типа "поток"

На что нужно обратить внимание:

  • Яндекс принимает новости только за последние 7 дней, поэтому делаем соответствующий критерий фильтрации
  • Заголовок не должен иметь в себе ссылку (снимаем галочку "ссылается на содержимое")
  • Добавляем поле "ссылка на содержимое" и переключаем её в режим "только URL". Эту ссылку нужно использовать для элемента link
  • Для элемента pubDate нужно добавить поле "создан в" и переключить формат даты на RFC 822 (предоставляется модулем views_rss_yandex)

Техподдержка Яндекса проверяет каждую новость и обязательно скажет вам, что "вот это вот новостью не является". Я рекомендую добавить к типу материала поле-галочку "Не выгружать в Яндекс Новости" и ставить её нодам отбракованным техподдержкой Яндекса. Таким образом они смогут остаться на вашем сайте, но будут исключены из ленты RSS для Яндекса.

Планы на будущее:

  • Нужно разобраться с работой yandex:enclosure, чтобы появилась возможность выгружать изображения и видео в новости

Если вы хотите помочь с разработкой, тестированием, написанием документации, то добро пожаловать. Пишите в любые каналы связи.

Комментарии

Аватар пользователя VasyOK VasyOK 27 июля в 2:13

У меня в голове крутится идея вывести RSS поток черeз views. Не использовать отображения типа Поток данных, а вывести поля, обрамить их нужными тегами, + изменить html.html.twig и page.html.twig для данной вьюхи.
Так ведь можно и изображения и видео и все что хочешь вывести.

Аватар пользователя VasyOK VasyOK 27 июля в 18:26

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