Grav CMS: не работает Feed (RSS, Atom). Решение и кастомизация ленты.

Проблема, опять же, связана с тем, что главной страницей установлен не блог (если его установить главной, то всё в порядке).
Отсюда и начинаю искать.

Нахожу, что предлагаемая плагином ссылка https://vladimirstepanov.cf/blog.rss не работает на моём мультиязычном сайте, а вот ссылка https://vladimirstepanov.cf/ru/blog.rss прекрасно работает! Ага!

Поскольку блог у меня одноязычный, без перевода, то решать буду тупо.
Раздел с лентой у меня в сайдбаре. Захожу в /user/themes/mytheme/templates/partials/sidebar.html.twig (если его нет в вашей кастомной теме, то скопируйте его из темы, на которой основывались). Меняю {{ feed_url }}.atom на {{ base_url }}/blog.atom и точно так же для ленты RSS.
Вуаля! Ссылки ведут куда нужно.

Далее мне захотелось настроить содержимое ленты немного по-другому. По умолчанию отдаётся весь текст заметки, но мне хотелось отправлять в ленту только текст до ката с заглавной картинкой и далее ссылку "Читать на сайте".
Копирую файл /user/plugins/feed/templates/feed.rss.twig в папку с тимплейтами своей темы: /user/themes/mytheme/templates/ .
Редактирую секцию description таким образом:

<![CDATA[
{% if banner %}
{{ banner.cropZoom(1200,800).html|absolute_url|raw }}
{% endif %}
{{ item.summary|safe_truncate_html(collection.params.length)|raw }}
<a href="{{ item.url(true) }}" title="{{ page.title }}">Читать на сайте</a>
]]>

Отлично, то, что нужно. С atom и json поступить по аналогии.

Screenshot_2022-04-18-18-13-22-78_84fcd4dbb4e5417fe6f57832ff43bad6

P. S. Огромное спасибо камраду из Телеграм Alex_Bream за помощь и идеи!

Previous Post Next Post