如何使用SimplePie过滤/阻止RSS源项目

时间:2011-05-16 22:40:07

标签: php wordpress rss feed simplepie

我有一个谷歌新闻提要,我在我的WordPress网站上显示,使用以下代码:

$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;

问题是,我需要过滤掉某些单独的文章。谷歌新闻有guid标签。鉴于该项目的guid,我如何告诉SimplePie忽略给定的项目?

谢谢 -

1 个答案:

答案 0 :(得分: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)。