酱子即可,不过wordpress默认缓存12个小时,还的等半天,不及时。
<?php
$feed = fetch_feed('http://014.cc/feed');
$items = $feed->get_items(0,5);
foreach($items as $item) {
echo '<a target="_blank" href="'.$item->get_link().'">'.$item->get_title().'</a> '.$item->get_date('Y-m-j G:i').'<br />';
}
?>
所以用下面这个:
<?php
require_once (ABSPATH . WPINC . '/class-feed.php');
$feed = new SimplePie();
$feed = fetch_feed('http://014.cc/feed');//feed
$feed->set_file_class('WP_SimplePie_File');
$feed->set_cache_duration(10); //设置缓存时间(10秒),这个各有所好
$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'] . '/cache/'); //缓存的目录
$feed->init();
$feed->handle_content_type();
$items = $feed->get_items(0,1); //定义显示几条
foreach($items as $item) {
echo '<a target="_blank" href="'.$item->get_link().'">'.$item->get_title().'</a> '.$item->get_date('Y-m-j G:i').'<br />';
}
?>
缓存机制:
SimplePie检查该feed是否已经缓存:
1、如果该feed已经缓存,并且没有过期的话,就使用缓存的feed
2、如果该feed没有缓存,SimplePie就抓取该feed并缓存下来
3、如果该feed已经缓存,但是已经过期(比如上例中已经超过设置的20分钟),SimplePie就使用HTTPCG技术向feed源发送请求,询问是否有更新:如果有更新,就使用新内容并重新缓存;如果没有更新就使用缓存的内容并重新设置缓存过期时间。
来自:http://www.1991s.com/2011/03/20/wordpress-fetch-feed-twitter/