WordPress調用站外文章,找了很久,找到這個方法,備忘。
從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是調用文章內容的長短--> </li> <?php endforeach;?> </ul>