WordPress调用站外文章解决方法之二
WordPress调用站外文章,壹品集开始用的另外一种方法,不过,调用的速度实在太慢。有时等页面载入好久才能调取文章出来。于是再GG,找到这个方法,备忘。
从wordpress2.8之后增加了一个fetch_feed函数,它能获取外部RSS Feed,从而显示其它网站的文章。如果你有多个网站,通过fetch_feed函数你就可以相互调用并显示多个网站的文章链接,还可以利用fetch_feed函数来采集他站的文章,当然这个最好是经站长允许。本文将用最简单的语言来说明其用法。
fetch_feed函数的原型如下
fetch_feed($url)
将其与目前流行的rss解析库SimplePie结合起来使用,代码如下
<?php
require_once(ABSPATH. WPINC.'/class-feed.php');
$feed= new SimplePie();
$feed->set_feed_url('http://feed.feedsky.com/biob');
$feed->enable_order_by_date(false);
$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'].'/cache');
$feed->init();
$feed->handle_content_type();
?>
<ul>
<?php foreach($feed->get_items(0,7) as$item):?>
<li><a href="<?php echo$item->get_permalink()?>"><?php echo$item->get_title()?></a>
<?php endforeach;?>
</li>
</ul>
简单说明下:
将feed_url替换。
SimplePie默认的缓存文件夹是根目录的cache文件夹,所以第一步是在网站的根目录下创建一个777权限的名为 cache的文件夹。
get_items(0,7)中的数字“7”为你展示的列表的文章数目。
以上方法只是调用文章的标题,如果想把文章也调用出来,可以在上面的基础下加入以下代码:
$item->get_description()
附上原始文章代码
<?php
require_once(ABSPATH. WPINC.'/class-feed.php');
$feed= new SimplePie();
$feed->set_feed_url(array('http://www.boke8.net/feed',"http://www.zloo.net/feed"));//可以添加多个站点feed地址
$feed->enable_order_by_date(false);
$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'].'/cache');//缓存文件夹
$feed->init();
$feed->handle_content_type();
?>
<ul>
<?php foreach($feed->get_items(0,2) as$item)://2是文章篇数?>
<li>
<a href="<?php echo$item->get_permalink()?>" rel="bookmark" title="<?php echo$item->get_title()?>"><?php echo$item->get_title()?></a><!--文章标题-->
<br/><?php echo substr($item->get_description(),0,100);?><!--文章内容,100是调用文章内容的长短-->
<?php endforeach;?>
</li>
</ul>
WordPress调用站外文章,壹品集开始用的另外一种方法,不过,调用的速度实在太慢。有时等页面载入好久才能调取文章出来。于是再GG,找到这个方法,备忘。
从wordpress2.8之后增加了一个fetch_feed函数,它能获取外部RSS Feed,从而显示其它网站的文章。如果你有多个网站,通过fetch_feed函数你就可以相互调用并显示多个网站的文章链接,还可以利用fetch_feed函数来采集他站的文章,当然这个最好是经站长允许。本文将用最简单的语言来说明其用法。
fetch_feed函数的原型如下
fetch_feed($url)
将其与目前流行的rss解析库SimplePie结合起来使用,代码如下
<?php
require_once(ABSPATH. WPINC.'/class-feed.php');
$feed= new SimplePie();
$feed->set_feed_url('http://feed.feedsky.com/biob');
$feed->enable_order_by_date(false);
$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'].'/cache');
$feed->init();
$feed->handle_content_type();
?>
<ul>
<?php foreach($feed->get_items(0,7) as$item):?>
<li><a href="<?php echo$item->get_permalink()?>"><?php echo$item->get_title()?></a>
<?php endforeach;?>
</li>
</ul>
简单说明下:
将feed_url替换。
SimplePie默认的缓存文件夹是根目录的cache文件夹,所以第一步是在网站的根目录下创建一个777权限的名为 cache的文件夹。
get_items(0,7)中的数字“7”为你展示的列表的文章数目。
以上方法只是调用文章的标题,如果想把文章也调用出来,可以在上面的基础下加入以下代码:
$item->get_description()
附上原始文章代码
<?php
require_once(ABSPATH. WPINC.'/class-feed.php');
$feed= new SimplePie();
$feed->set_feed_url(array('http://www.boke8.net/feed',"http://www.zloo.net/feed"));//可以添加多个站点feed地址
$feed->enable_order_by_date(false);
$feed->set_cache_location($_SERVER['DOCUMENT_ROOT'].'/cache');//缓存文件夹
$feed->init();
$feed->handle_content_type();
?>
<ul>
<?php foreach($feed->get_items(0,2) as$item)://2是文章篇数?>
<li>
<a href="<?php echo$item->get_permalink()?>" rel="bookmark" title="<?php echo$item->get_title()?>"><?php echo$item->get_title()?></a><!--文章标题-->
<br/><?php echo substr($item->get_description(),0,100);?><!--文章内容,100是调用文章内容的长短-->
<?php endforeach;?>
</li>
</ul>