Я пытаюсь расширить SimplePie для сортировки фида в обратном порядке. Второй канал, который я выделил с переменной $ events, - это фид событий, которые я хотел бы отображать с «самой старой» датой сначала, поскольку это событие ближе всего к происходящему.Не удается получить функцию SimplePie для расширения с классом
Я использую док 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();
?>
Что вы получаете, сообщения об ошибках, а также какую версию PHP вы используете? Если вы получаете устаревшие ссылочные ошибки, вы можете исправить это, удалив все = & и заменив их на = в simplepie.inc. – rncrtr
PHP Version 5.2.17. Я не получаю никаких ошибок, это странная часть. Насколько я могу судить, он должен работать. Я попытаюсь заменить = &. Я прокомментировал Facebook. Думаю, я должен был прокомментировать здесь. –
Я только что проверил тест на совместимость SimplePie. Все проверено там. –