Intereting Posts
Несколько социальных кнопок с быстрой загрузкой? Использование оболочки PHP Api в плагине. Wrapper использует пространство имен WordPress Multisite Network и вопросы разработчика Измените значение по умолчанию с «URL-адрес вложения» на «URL-адрес файла» в «Добавить медиа» Отправка переменной jQuery в php-функцию Избранное изображение загружено, добавлено и установлено, но отображается только в медиа-библиотеке Изменить ссылки на edit.php Попытка получить пользовательские изображения вложений типа post для работы в индексированном массиве Неплохо ли переходить непосредственно к базе данных mysql при разработке плагина? Получение доступа в Интернет через базу данных Выберите два значения из мета-ключа и отправьте мета Установите два стандартных изображения по умолчанию Как я могу помешать странице результатов поиска изменить название? Перемещение изображения в сторону Показывать измененное время, если сообщение действительно изменено

Как добавить отображаемое изображение или настраиваемое поле в XML-канал?

Я уже пробовал плагины RSS-менеджер, добавляет улучшенное изображение в RSS-канал и избранное изображение в Rss-Feed. Но все, что они делают, это добавить изображение внутри атрибута <description> в корне XML.

Существует по меньшей мере 2 проблемы:

  • Блог, который тянет канал, обрезает <description> примерно на 300 символов, что хорошо.
  • Блог, который тянет теги html ленты ленты. Я должен их разбить, потому что если внутри тела сообщения есть изображение, оно отобразит его. Поэтому, если в начале сообщения есть два изображения, они будут отображать их, а также отображать изображение. Кроме того, тег img будет содержать символы с ограничением в 300 символов.

Поэтому мне нужно сгенерировать RSS xml-канал с добавленным атрибутом <featuredimage> или <thumbnail> или что-то в этом роде. НЕ встроен внутри <description> .

Я искал плагины, но не могу найти решение этой проблемы. Заранее спасибо.

RSS-канал генерируется в файле wp-includes/feed-rss2.php . В этом файле есть крючок действия с именем rss2_item . Вы можете использовать этот крючок действия для добавления тегов к каждому элементу в фиде.

Существует статья codex на rss2_item с примерами, включая эту для добавления <image> :

 <?php add_action('rss2_item', 'add_my_rss_node'); function add_my_rss_node() { global $post; if(has_post_thumbnail($post->ID)): $thumbnail = get_attachment_link(get_post_thumbnail_id($post->ID)); echo("<image>{$thumbnail}</image>"); endif; } ?> 

Я пытаюсь сделать то же самое. Несколько ресурсов, которые я смотрел до сих пор:

Сначала изучите действительный синтаксис и структуру RSS. RSS2.0 Синтаксис тегов

Создайте скрытую страницу в WordPress, чтобы создать свой собственный макет и вызвать любые поля и изображения, которые вы хотите. Yoast Custom RSS Feed tut

Рабочий код:

 add_action('rss2_item', 'custom_thumbnail_tag'); function custom_thumbnail_tag() { global $post; if(has_post_thumbnail($post->ID)): $thumbnail_ID = get_post_thumbnail_id( $post->ID ); $thumbnail = wp_get_attachment_image_src($thumbnail_ID, 'thumbnail'); echo("<thumbnail>{$thumbnail['0']}</thumbnail>"); endif; }