2011-05-16 102 views
3

我有一个谷歌新闻供稿我在我的WordPress网站显示,使用下面的代码块RSS提要条目:如何筛选/用了SimplePie

$feed = fetch_feed($rss_url); // specify the source feed 
$limit = $feed->get_item_quantity(20); // specify number of items 
$items = $feed->get_items(0, $limit); // create an array of items 
foreach ($items as $item) : 
    echo $item->get_description(); 
endforeach; 

问题是,个别条款,我需要进行过滤出。 Google新闻项目有guid标签。鉴于该项目的指导,我如何告诉SimplePie忽略给定的项目?

谢谢,

回答

3

SimplePie没有内置的过滤功能(还)。但是,您可以选择只显示你想要的物品:

$feed = fetch_feed($rss_url); // specify the source feed 
$limit = $feed->get_item_quantity(20); // specify number of items 
$items = $feed->get_items(0, $limit); // create an array of items 
$ignoreGUIDs = array("http://example.com/feed?id=1", "http://example.com/feed?id=2"); 
foreach ($items as $item) : 
    if(!in_array($item->get_id(false), $ignoreGUIDs)){ 
     echo $item->get_description(); 
    } 
endforeach; 

get_id() method返回该项目的<guid><link><title>标签的数组,每个的in_array()条款,然后搜索匹配每一个你$ignoreGUIDs。如果没有匹配,则表示该项目的GUID不在您的exlusion列表中,因此显示该项目(由echo)。

+0

@ Ancide-令人惊讶的是没有过滤,但您的解决方案是之后的最佳选择。感谢您的get_id参考... – Yarin 2011-05-19 15:09:18

+0

@Yarin没问题,我很高兴它为您解决。 – rzetterberg 2011-05-19 15:18:26