我正在使用以下代码将侧边栏中的WordPress博客的一些条目显示为Feed。问题是,无论我做什么,它都不会更新。它仍然只显示第一个“Hello World”帖子,即使我已经添加了其他帖子,并且在我更改后它甚至没有显示该帖子的更新名称。认为这可能是一个缓存问题,但如果我实际点击进给XML,数据会更新 - 这对我没有意义?
<?php
// Blog Feed:
$rss_url = get_option('home')."/feed/";
?>
<ul class="side-feed">
<?php if(function_exists('fetch_feed')) {
include_once(ABSPATH . WPINC . '/feed.php'); // include the required file
$feed = fetch_feed($rss_url); // specify the source feed
$limit = $feed->get_item_quantity(3); // specify number of items
$items = $feed->get_items(0, $limit); // create an array of items
echo count($items);
}
if ($limit == 0) echo '<div>(None)</div>';
else foreach ($items as $item) : ?>
<li><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a></li>
<?php endforeach; ?>
</ul>
答案 0 :(得分:3)
Wordpress默认会将Feed缓存12小时,要更改此项,您需要挂钩wp_feed_cache_transient_lifetime
过滤器并返回要缓存的秒数。
add_filter('wp_feed_cache_transient_lifetime', create_function('', 'return 60*60;'));