将 WordPress 特色图片添加到 RSS 提要

Posted

技术标签:

【中文标题】将 WordPress 特色图片添加到 RSS 提要【英文标题】:Add WordPress featured image to RSS feed 【发布时间】:2012-02-25 18:26:56 【问题描述】:

我正在使用我的 WordPress RSS 源在 MailChimp 中设置一个 RSS 到电子邮件活动,并且我想在我的 MailChimp 模板中包含特色图片。 我尝试使用它来添加图像,它有效,但它只是将它添加到内容中,这对于 RSS 代码的 MailChimp 部分不起作用:

function featuredtoRSS($content) 
global $post;
if ( has_post_thumbnail( $post->ID ) )
$content = '' . get_the_post_thumbnail( $post->ID, 'thumbnail', array( 'style' => 'float:left; margin:0 15px 15px 0;' ) ) . '' . $content;

return $content;


add_filter('the_excerpt_rss', 'featuredtoRSS');
add_filter('the_content_feed', 'featuredtoRSS');

显然,MailChimp 希望它是“自己的”独特的图像元素。以下是他们想要的示例:http://kb.mailchimp.com/article/how-can-i-format-the-image-content-in-my-rss-to-email-campaigns

但它看起来像是不同的 RSS 格式。这是我的 RSS 输出的内容:http://pacmissions.org/dev/missions/zimbabwe-2012/feed/

【问题讨论】:

试试这个吧? wordpress.org/extend/plugins/wp-rss-images 【参考方案1】:

似乎有很多关于如何将图像添加到提要内容顶部的示例,但在您创建新标签的地方却没有太多示例。一个潜在的问题是创建自定义标签或类似的东西不是有效的 RSS 格式。如果您正在为自己的用途创建 XML 文档,那么提要是否经过验证并不重要。这就是我所做的,您应该可以轻松地针对 MailChimp 用例稍微修改它。

functions.php添加(主题文件夹内:wp-content/themes/your-active-theme-folder):

function insertImageRSS() 
  global $post;
  preg_match("/(http:\/\/.*(jpg|jpeg|png|gif|tif|bmp))\"/i", get_the_post_thumbnail( $post->ID, 'thumbnail' ), $matches);
  return $matches[1];

wp-includes/feed-rss2.php中(我使用了附件标签,但还没有进行文件大小计算,所以我使用了占位符):

<?php if (get_the_post_thumbnail( $post->ID, 'thumbnail' ) != '')  ?><enclosure <?php echo 'url="' . insertImageRSS() . '"'; ?> length="1000" type="image/jpeg" /><?php  ?>

【讨论】:

【参考方案2】:

我经常需要为 MailChimp 创建自定义提要,并且发现很多时候我必须进行一些“hacky”更改,例如将自定义值放入 M​​ailChimp 支持的有限标准字段中。

因此,我喜欢使用 Yoast (http://yoast.com/custom-rss-feeds-wordpress/) 中描述的方法来创建一个输出自定义 RSS 提要的页面。

为了将特色图片包含在 MailChimp 可以识别的字段中,需要进行一些调整。

首先,您需要添加 Media RSS 命名空间,我通常通过添加到开头的&lt;rss&gt; 标签来完成:

<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss">

然后为了在项目中包含特色图片:

<?php if(get_the_post_thumbnail()): ?>
    <media:content url="<?php echo wp_get_attachment_url(get_post_thumbnail_id($post->ID)); ?>" medium="image" />
<?php endif; ?>

如果您需要指定要包含的特定图像大小,则需要在项目中使用此代码:

<?php if(get_the_post_thumbnail()): ?>
    <media:content url="<?php $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'imageSize'); echo $image[0]; ?>" medium="image" />
<?php endif; ?>

然后,您可以使用 *|RSSITEM:IMAGE|**|FEEDITEM:IMAGE|* 合并标签在 MailChimp 中获取它。

【讨论】:

以上是关于将 WordPress 特色图片添加到 RSS 提要的主要内容,如果未能解决你的问题,请参考以下文章

php WordPress :: RSS Feed中的特色图片MailChimp

通过 api 在 wordpress.com 中添加特色图片

markdown 将特色图像添加到RSS源。

WP REST API 帖子提要不显示特色图片

从外部RSS提要获取Wordpress特色图像

PHP Wordpress将帖子缩略图添加到RSS源