我有两个单独的WordPress安装 - 我将调用一个站点A,另一个站点B.我想使用fetch_feed()
将站点B中的订阅源提取到站点A.我还想要包含一个缩略图。默认情况下,WordPress不会在Feed中包含缩略图,因此我创建了一个自定义Feed,其中包含以下内容:
<?php if(get_the_post_thumbnail()): ?>
<media:thumbnail url="<?php $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'feed-thumb'); echo $image[0]; ?>" />
<media:content url="<?php $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'feed-thumb'); echo $image[0]; ?>" medium="image" />
这似乎有效,并在每个内容中返回如下内容:
<media:thumbnail url="http://www.site-b.com/wp-content/uploads/2013/01/thumbnail.jpg" />
<media:content url="http://www.site-b.com/wp-content/uploads/2013/01/thumbnail.jpg" medium="image" />
现在,我回到网站A,尝试使用fetch_feed()
提取此Feed:
<?php // Get RSS Feed(s)
include_once(ABSPATH . WPINC . '/feed.php');
// Get a SimplePie feed object from the specified feed source.
$rss = fetch_feed('http://www.site-b.com/custom-feed/');
if (!is_wp_error( $rss ) ) : // Checks that the object is created correctly
// Figure out how many total items there are, but limit it to 2.
$maxitems = $rss->get_item_quantity(2);
// Build an array of all the items, starting with element 0 (first element).
$rss_items = $rss->get_items(0, $maxitems);
endif;
if ($maxitems == 0) echo 'No items.';
else
// Loop through each feed item.
foreach ( $rss_items as $item ) :
if ($enclosure = $item->get_enclosure())
{
echo '<img src="' . $enclosure->get_thumbnail() . '" class="feed-thumb" />';
}
?>
<p><?php echo esc_html( $item->get_description() ); ?>
<a href="<?php echo esc_url( $item->get_permalink() ); ?>"
title="<?php echo esc_html( $item->get_title() ); ?>">Continue Reading</a></p>
<?php endforeach; ?>
除缩略图外,一切正常。标题,永久链接和描述都正确返回。但是,缩略图不会返回URL。所以,我刚刚离开:
<img src="" class="feed-thumb" />
如何返回缩略图的网址?
感谢您阅读此内容。
答案 0 :(得分:3)
<rss>
标记中并且有效:
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss">
答案 1 :(得分:3)
还有另一种解决方法。我遇到了类似的问题。我意识到我没有使用 media:thumbnail ,只有 media:content 。为了获得链接,我使用了以下代码:
echo '<img src="' . $enclosure->get_link() . '" class="feed-thumb" />';
我没有调用缩略图,而是调用了链接,情况得到了解决。