我在我的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 忽略给定的项目?
谢谢-
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() 方法返回项目的 <guid>
、 <link>
和 <title>
标记的数组,然后 in_array()
子句搜索每个$ignoreGUIDs
的匹配项。如果没有匹配项,则表示该项的 GUID 不在排除列表中,因此将显示该项(按echo
)。