无法让 SimplePie 函数随类扩展


Can't get SimplePie function to extend with class

我一直在尝试扩展 SimplePie 以相反的顺序对提要进行排序。我用变量$events区分的第二个提要是我想以"最早"日期显示的事件提要,因为该事件最接近发生。

我一直在使用 SimplePie 的文档 Simple Pie Custom Sort 来创建这些代码行来实现这一点,

class SimplePie_Custom_Sort extends SimplePie {
    function sort_items($a, $b) {
         return $a->get_date('U') >= $b->get_date('U');
    }
}

但是它似乎不起作用。我什至直接从上面的文档中复制并粘贴了代码,以尝试按字符串长度对提要进行排序,但这也不起作用。

如果我直接进入simplepie.inc文件并在那里编辑排序功能,我可以让两个提要以相反的顺序显示。所有这些原因使我相信我尝试使用 Simple_Pie_Custom_Sort 扩展函数的方式存在错误。或者,也许我正在尝试做一些SimplePie能够做的事情。

甚至上传了simplepie.inc文件的新副本,想知道我是否在某个时候不小心保存了它。

我觉得我可能在某个地方有一个愚蠢的错误。我很感激任何人可以提供。我正在使用的整个代码块如下所示。谢谢。

<?php
//TURN OF ERROR REPORTING
//error_reporting(0);
//INCLUDE SIMPLEPIE (PULLS RSS FEED)
require_once("inc/simplepie.inc");
// Extend the SimplePie class and override the existing sort_items() function with our own.
class SimplePie_Custom_Sort extends SimplePie {
    function sort_items($a, $b)
{
    return $a->get_date('U') >= $b->get_date('U');
}
}
//NEW SIMPLEPIE
$news = new SimplePie();
//SET LOCATIONS OF FEEDS
$news->set_feed_url(array(
     'http://rss-feed-url-example.rss'
));

//SET UP CACHING
$news->enable_cache(false);
//$news->set_cache_location('cache');
//$news->set_cache_duration(1800);
//START THE PROCESS
$news->init();
//HANDLE FEED TYPE
$news->handle_content_type();


//NEW SIMPLEPIE USING CUSTOM SORTING
$events = new SimplePie_Custom_Sort();
//SET LOCATIONS OF FEEDS
$events->set_feed_url(array(
     'http://rss-feed-url-example.rss'
));
//ANOTHER POSSIBLE NEED FOR SORTING RSS DIFFERENTLY
$events->enable_order_by_date(false);
//SET UP CACHING
$events->enable_cache(false);
//$events->set_cache_location('cache');
//$events->set_cache_duration(1800);
//START THE PROCESS
$events->init();
//HANDLE FEED TYPE
$events->handle_content_type();
?>

你有

$events->enable_order_by_date(false);

这将完全禁用排序,导致您的项目无法排序。(这是一个名称不好的方法。

我想出了问题所在。SimplePie不喜欢我在数组中有一个单一的提要。

我改变了这个...

//SET LOCATIONS OF FEEDS
$events->set_feed_url(array(
   'http://rss-feed-url-example.rss'
));

对此...

//SET LOCATIONS OF FEEDS
$events->set_feed_url('http://www.coloradotechnology.org/resource/rss/events.rss');

如果有人能详细说明为什么这会导致问题,我很想听到更好的解释。