Создание RSS ленты на Modx Revolution

Создание RSS ленты на Modx Revolution

Всем привет, дорогие подписчики. Сейчас я вам расскажу как легко и просто создать RSS ленту своего сайта на CMF Modx Revolution с помщью Pdoresources. Поэтому перед тем как начать скачайте и установите дополнение pdoTools.

Теперь создаём новый ресурс в корне сайта, называем его rss, ставим пустой шаблон, идём в «Настройки», убираем галочку «Использовать html-редактор», ставим галочку «Заморозить url»,  а в «Типе содержимого» выбираем «RSS». Сохраняем.

Теперь в содержимое этого ресурса вставляем следующий код

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>[[*pagetitle]] / [[++site_name]]</title>
        <link>[[~[[*id]]?scheme=`full`]]</link>
        <description>[[*description:cdata]]</description>
        <language>en</language>
        <copyright></copyright>
        <ttl>120</ttl>
        <atom:link href="[[~[[*id]]?scheme=`full`]]" rel="self" type="application/rss+xml" />
        [[!pdoResources?
            &tpl=`rss`
            &parents=`1`
            &depth=`1`
            &limit=`10`
            &showHidden=`1`
            &sortby=`createdon`
            &includeTVs=`img,file,tags`
            &useWeblinkUrl=`1`
            &scheme=`full`
        ]]
    </channel>
</rss>

где в вызове pdoResources в

&tpl — нужно указать имя чанка с выводом каждого поста, в моем случае — это чанк rss
&includeTVs — указать TV изображения поста и прочие TV, которые вы будете использовать в посте (в моем случае это TV file и tags)

Далее создаём чанк rss с кодом:

<item>
    <title>[[+pagetitle]]</title>
    <link>[[+link]]</link>
    <seolit:hashtags>[[+tv.tags]]</seolit:hashtags>
    <description>[[+content:notags:absURL:cdata]]</description>
    <pubDate>[[+publishedon:date=`%a, %d %b %Y %H:%M:%S %z`]]</pubDate>
    <guid>[[+link]]</guid>
    
    <enclosure url="[[+tv.img:phpthumbof=`w=737&h=518&zc=1&f=jpg`]]" type="image/jpeg"/>
</item>

Где

+pagetitle — Заголовок поста
+link— url поста
+tv.tags — специальный тег сервиса seolit для вывода хэштегов в постах при автопостинге с сайта в социальные сети
+content:notags:absURL:cdata — вывод текста в описание из поля «Содрежимое» без тегов p. Если у вас слишком длинный текст, можно поставить ограничение, скажем в 400 символов, вывод будет таким
+publishedon:date=`%a, %d %b %Y %H:%M:%S %z` — вывод даты публкации
+tv.img:phpthumbof=`w=737&h=518&zc=1&f=jpg`— вывод изображения, обрезаемого под размер 737 на 518 пикселей дополнение phpthumbof (нужно скачать в репозитории)

Проверить валидность (правильность) вывода rss ленты можно здесь. Может ругаться на <seolit:hashtags>, так как это специальный тег, но если все остальное в норме и не подсвечивается — то поздравляю, rss лента готова.
 

Если вы не видите кнопку "Скачать"
отключите блокировщик рекламы

Комментарии ()

  1. Дима 30 июля 2020, 12:08 # 0
    Ни чего не выводится :(((
    1. Эрик Байгузин 30 июля 2020, 12:11 # 0
      сложно по такому комментарию объяснить, почему не выводится
    2. Дима 30 июля 2020, 13:22 # 0
      Извините… именно картинка не выводится (((
      1. Эрик Байгузин 30 июля 2020, 23:30 # 0
        Может забыли изменить с круглых на квадратные скобки?
      2. Иван 30 апреля 2023, 22:21 # 0
        Такая же проблема с выводом картинки. В вк настроен постинг как статьи.

        Не то, что искали? Воспользуйтесь поиском