Создание RSS канала в WordPress для Турбо страниц. Без плагинов

Предыстория. После установки и тестирования нескольких бесплатных плагинов, я начал создание RSS канала в WordPress для Турбо страниц, самостоятельно, без плагинов. Не то чтобы плагины мне не понравились, они отличные, заполнил несколько полей и канал готов. Для людей, не знакомых с программированием вещь необходимая. Но, мне хотелось большего. Например кнопки «Поделиться», и я начал делать.

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

Первое, что нужно сделать, создать новый фид. Согласно моей файловой структуре, в папке inc я создал файл custom-rss.php, и подключил его в файле functions.php.

В функции add_feed() я указал название ленты yaturbo и название функции yaturbo_callback_function, которая будет формировать эту самую ленту.

Далее пишем функцию формирования ленты. Я решил создать шаблон в отдельном файле, поэтому в custom_rss.php просто дописал три строки:

Дальше все манипуляции с шаблоном в созданном файле yaturbo-rss.php. Скачать полный файл можно на GitHub по ссылке -> https://github.com/okkey45/yaturbo

Создаем цикл на основе WP_Query:

Мне необходимо, чтобы выводились записи двух типов, поэтому в post_type я прописал post и project, и ограничил количество выводимых постов в ленте. Яндекс уже анонсировал API для турбо страниц, поэтому я не стал заморачиваться с пагинацией, буду ждать релиза.

Формируем заголовок для канала.

Отличие от стандартной ленты в теге rss и добавленных парных тегов yandex:analytics. Все элементы RSS канала для Турбо страниц можно посмотреть в помощи Яндекса -> https://yandex.ru/support/webmaster/turbo/rss-elements.html

Формируем вывод отдельной записи в RSS ленте.

Начало более чем стандартное за исключением тега item, в котором необходимо прописать параметр turbo=true, и обернуть контент в парный тег turbo:content.

Очистим запись от ненужных тегов, оставим, разрешенные для отображения в Турбо-страницах. В изображениях удаляем всё, кроме ссылки на само изображение.

Посмотрев предыдущий фрагмент кода внимательный читатель скажет: — «А в 17-й строке нужно было использовать функцию get_the_content()». Эта еще одна причина, почему я занялся созданием RSS канала в WordPress для Турбо страниц без плагинов. Дело в том, что именно эта тема при использовании вышеупомянутой функции удаляет все теги параграфа, хотя они прописаны в разрешенных, и валидатор турбо-страниц выбрасывает из поиска такие страницы с ошибкой:

Содержимое Турбо-страницы не соответствует оригинальной версии (в элементе turbo:content текст не разбит на абзацы)

Следующий шаг состоит из шести строк, которые содержат header, контент записи, и те самые кнопки «Поделиться».

Очередность кнопок можно менять, в зависимости от вашего предпочтения. Учтите, на странице видно три кнопки, остальные скрыты за кнопкой «Еще».

Казалось, цель достигнута, можно остановиться. Но нет, Яндекс разрешает выводить похожие записи. Делаем. Здесь совсем просто. Мне необходимо выводить по 2 записи из этой же категории.

Категории и метки у меня выводятся в нескольких шаблонах, поэтому в файле theme-support.php заготовлена вот такая функция

Воспользуемся ей для вывода записей только из категории, к которой принадлежит просматриваемая запись.  Сразу после закрывающего тега turbo:content пишем код:

В аргументах указываем, что нам необходимы посты из этой же категории в количестве двух штук, и исключаем попадание текущей записи в «похожие».

Фид готов, и будет доступен по адресу //ваше_доменное_имя/feed/yaturbo. Перед первым открытием данной страницы необходимо зайти в админ панель сайта -> Настройки -> Постоянные ссылки и нажать кнопку «Сохранить», чтобы переписались правила построения ссылок. Или в файле с функцией инициализации фида написать следующий ниже код, открыть по ссылке RSS-канал, после чего код удалить или закомментировать.

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

Всего комментариев - 4.

    1. Натали, я начал писать решение для AMP, но на данном этапе в моей практике не было задач, с которыми бы не справлялся плагин Accelerated Mobile Pages. Поэтому допиливание решения отложено на неопределенный срок. Ссылка на плагин -> https://ru.wordpress.org/plugins/accelerated-mobile-pages/

      1. Тут вы правы. Accelerated Mobile Pages отличный. Плагины турбо-страниц также хорошо справляются со своими функциями. Но некоторые же любят самостоятельно «поковыряться» в коде.))

        1. Главное со знанием дела «ковырять в коде», и только в тех случаях, когда без собственного вмешательства не получить необходимого результата. В остальных случаях есть множество плагинов для расширения функционала WordPress, как платных, так и бесплатных.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
*
*

Нажимая кнопку «Отправить комментарий» я даю свое согласие на использование и обработку моих персональных данных в соответствии с ч. 1 ст. 9 ФЗ от 27.07.2006 г. № 152 «О персональных данных»