WordPress 3.0.1 中被迫用 fetch_feed() 替换 fetch_rss() 来获取 rss 数据

前一个多月中都是用 fetch_rss() 函数 (定义在 wp-includes/rss.php 中) 来获取外部 RSS 数据的,代码如下:

1<?php
2    $articles = fetch_rss("http://feed.unmi.cc");
3    foreach($articles as articles){
4        echo $article['title'].'=>'.$article['link'];
5        //更多元素可用 var_dump($article) 查看
6    }
7?>

当然,你可以用 wp_rss() 或 get_rss() 直接在页面上显示获取的 rss 记录,我是需要处理 $articles 数组变量的。

可是近两三日来,不知怎地,fetch_rss() 总拿不到 rss 中的数据,就是今天不断的测试也是没有用。我的 WordPress 安装了 kb-advanced-rss-widget 插件,该插件里也带了 fetch_rss 函数定义,难道是定义的同名函数有冲突。也不对呀,这个插件可是一直在的,为何这么久还用得好好的。

先把问题解决了再说,还是 Eclipse 的 PHP 插件好用,输入 fetch_ 后会提示出 fetch_feed() 函数来,feed 本来就称得上是 rss 的别名。那就用 fetch_feed() (定义在 wp-includes/feed.php 中)吧,它得到的不再是一个数组,而是一个 SimplePie 对象,所以使用时略有不同,是通过方法来得到具体数据的。
 1<?php
 2$articles = fetch_feed("http://feed.unmi.cc");
 3foreach($articles->get_items() as $article){
 4?>
 5<li>
 6 <a href='<?php echo $article->get_permalink(); ?>'>
 7  <?php echo $article->get_title(); ?>
 8 </a><br>
 9 <?php echo $article->get_description(); ?>
10</li>
11<?php } ?>

OK,现在是可以了

参考:1. Convert Wordpress fetch_rss to fetch_feed 
        2. Wordpress fetch_feed调用站外文章
        3. wordpress获取rss内容的函数wp_rss、fetch_rss 永久链接 https://yanbin.blog/wordpress-fetch_rss_to_fetch_feed/, 来自 隔叶黄莺 Yanbin's Blog
[版权声明] 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。