Если вы являетесь СМИ (или ваш клиент является СМИ), то наверняка будет задача экспорта новостей с сайта в "Яндекс Новости". Задача только на первый взгляд кажется сложной.
Итак, что такое "экспорт в Яндекс Новости". Нужно создать 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, чтобы появилась возможность выгружать изображения и видео в новости
Если вы хотите помочь с разработкой, тестированием, написанием документации, то добро пожаловать. Пишите в любые каналы связи.
Комментарии
У меня в голове крутится идея вывести RSS поток черeз views. Не использовать отображения типа Поток данных, а вывести поля, обрамить их нужными тегами, + изменить html.html.twig и page.html.twig для данной вьюхи.
Так ведь можно и изображения и видео и все что хочешь вывести.
Слишком сложно, не находишь?
Нет. Ведь так не нужно ничего программировать.
Ты статью-то читал? Там написано:
1) включить модули
2) создать вьюху
Да, но т. обр. фид формируется слишком стандартизировано. Я же предлагаю выводить то, что нужно, а не то что в модуле.
Яндекс его кушает и это главное