How to add featured image or custom field to xml feed?

I already tried the plugins RSS Manager, Add featured image to RSS feed and Featured Image In Rss Feed. But all they do is add the image inside the <description> attribute of the xml feed.

There is at least 2 problems with that:

  • The blog that’s pulling the feed truncates the <description> at about 300 characters which is fine.
  • The blog that’s pulling the feed strips html tags. I have to strip them because if there is an image inside the body of the post, it will display it. So if there are two images at the beginning of the post, it will display them and it will also display the featured image. Also, the img tag will eat up characters of the 300 character limit.

So I need to generate the RSS xml feed with the added attribute <featuredimage> or <thumbnail> or something like that. NOT embedded inside <description>.

I have searched for plugins but can’t find any that solve this problem. Thanks in advance.

3 Answers
3

The RSS2 feed is generated in the wp-includes/feed-rss2.php file. In this file, there is an action hook named rss2_item. You can use this action hook to add tags to each item in your feed.

There is a codex article on rss2_item with examples, including this one for adding an <image> tag:

<?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;
}
?>

Leave a Comment