WordPress fetch_feed 调用rss

酱子即可,不过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/

发表评论

电子邮件地址不会被公开。

 smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles smiles

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

无觅相关文章插件,快速提升流量