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

发布于 2024-11-07 11:20:04 字数 446 浏览 1 评论 0原文

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

$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 标签。给定项目的 guid,我如何告诉 SimplePie 忽略给定的项目?

谢谢-

I've got a google news feed I display in my WordPress site, using the following code:

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

Problem is, certain individual articles I need to filter out. Google news items have guid tags. Given the guid of the item, how can I tell SimplePie to ignore the given item?

Thanks-

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

同尘 2024-11-14 11:20:04

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() 方法 返回一个项目的 </code> 标记的数组,每个标记的 <code>in_array ()</code> 子句然后搜索每个 <code>$ignoreGUID</code> 的匹配项。如果没有匹配项,则意味着该项目的 GUID 不在您的排除列表中,因此会显示该项目(通过 <code>echo</code>)。

SimplePie does not have built-in filtering functions (yet). However, you can selectively show only the items you wish:

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

The get_id() method returns an array of the item's <guid>, <link>, and <title> tags, each of which the in_array() clause then searches for a match of each of your $ignoreGUIDs. If there are no matches, it means the item's GUID is not in your exlusion list and so the item is shown (by echo).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文