将多个RSS提要导入WordPress并按日期排序

时间:2011-07-03 作者:Damchey Lhendup

我发现以下代码可以从多个提要导入提要并在wordpress中显示它们。但是,我想按日期对所有组合提要进行排序,只显示10个。我该怎么做?

谢谢

<?php
  $feed = fetch_feed(array(\'http://www.site1.com/feed/\', \'http://www.site2.com/feed/\'));
foreach($feed->get_items() as $item) {
   echo $item->get_title();
}
?>

1 个回复
SO网友:kaiser

检查参数时,您尝试的主要问题是假定函数接受一个参数数组。关键是这行不通。的内部构件fetch_feed() Link to source 向您展示了它只是SimplePie 类,因此您必须在每个URl之后插入一个URl。作为回报,你会得到一个完全烤熟的SimplePie object.

重新编写的代码,因此您的代码应该如下所示:

$feeds[] = fetch_feed( \'http://site-a.example.com/feed/\' );
$feeds[] = fetch_feed( \'http://site-b.example.com/feed/\' );
foreach( $feeds as $feed )
{
    foreach ( $feed->get_items() as $item )
    {
        echo $item->get_title();
    }
}
解决方案是,您可以(如代码所示)然后使用classes方法。我不是这方面的专家SimplePie (我甚至没有使用过这个类),但从源代码来看,似乎有merge_items() 方法也许你可以用这个:

$simple_pie = new SimplePie;
$feeds[] = fetch_feed( \'http://site-a.example.com/feed/\' );
$feeds[] = fetch_feed( \'http://site-b.example.com/feed/\' );
$feed_posts = $simple_pie->merge_items( $feeds, 0, 10, 10 );
现在merge_items() 接受四个参数。

  • $urls - 一系列SimplePie 对象(这就是我们首先获取提要的原因)$start
  • $end
  • $limit
方法在内部调用get_items() - 和你做的完全一样。这两个方法都调用按日期排序的排序回调方法。

任务已完成。

结束