链表如何使最新博客显示在顶部?

3
我希望有一个简单的链接列表,其中包含博客的最新条目、作者、博客名称和日期,按照最新更新的顺序列出。所以,就像Blogger在他们的侧边栏上所拥有的那样 - 每当他们有链接列表时,它会根据最近更新的博客自动重新排序(虽然通常没有摘要,只有站点的标题)。
我想要做的是将多个RSS源插入到一个地方,只检查每个源中的最新条目,然后对它们进行重新排序。
EE中的magpie插件或RSS插件目前只允许您插入一个源。如果我重复使用magpie标签(每个博客一个标签),它将显示每个博客的最新条目,但这并不能帮助重新排序,并且也有点混乱。
求助?有什么想法吗?
更新:我希望确保即使他们最后一次发布的文章是一年前,每个博客仍然被展示。例如,像那样的博客将成为链接列表中的最后一个,而在此小时内更新的条目/站点将位于顶部。因此,例如,如果我将链接列表限制为5个,它不会仅从一个网站显示5个最新条目。它将显示每个站点的1个最新条目。

示例行为:类似于按日期排序且每个人只有1张照片的Flickr好友页面。http://www.flickr.com/photos/friends/ 除此之外,只显示博客文章的标题、所属网站、作者等信息。

5个回答

3

有一个RSS聚合器EE插件可用,可以为您合并订阅源。

http://devot-ee.com/add-ons/rss-aggregator

{exp:rss_aggregator:items feed_ids="6|7" limit="10" order_by="pub_date" order="desc" pub_date_format="m-d-Y g:ia" cache_timeout="60"}
    <li>
        <a href="{link}">{title}</a><br />
        <small>{pub_date} - From {channel_title}</small><br />
    </li>
{/exp:rss_aggregator:items}

差强人意。这只显示最近的条目,没有例外。因此,如果一个博客在一天内发布了3次,它就是唯一显示的内容,而不是所有博客至少显示一篇文章。似乎有点有bug。编辑:它还不能让你编辑订阅源!只能删除它们。糟糕。:P - lealea

2
您可以使用Yahoo! Pipes来实现这一点。事实上,我之前创建了一个管道:http://pipes.yahoo.com/pipes/pipe.info?_id=82e8b23b84bf2d6c3014f50c0f6b2f1d 只需使用逗号分隔的RSS源列表调用它,就可以得到所有RSS源的最新条目,并按时间顺序排序。
例如:

http://pipes.yahoo.com/pipes/pipe.run?_id=82e8b23b84bf2d6c3014f50c0f6b2f1d&_render=json&feedurls=appleinsider.com.feedsportal.com/c/33975/f/616168/index.rss,feeds.foxnews.com/foxnews/latest?format=xml

所以现在你已经有了RSS订阅的URL,可以使用Phil Sturgeon的REST模块提取单个条目。
对于那些感兴趣的人,这是管道的设置方式:

enter image description here


1
相信Stash可以通过set_list和get_list来处理这个问题。我还没有测试过,但可能是这样的:
   {exp:channel:entries channel="feed_urls"}
      {exp:magpie url="{url}" limit="1"}
         {items}
            {exp:stash:append_list name="feed_items"}
               {stash:title}{title}{/stash:title}
               {stash:pubdate}{pubdate}{/stash:pubdate}
            {/exp:stash:append_list}
         {/items}
      {/exp:magpie}
   {/exp:channel:entries}

   {exp:stash:get_list name="feed_items" orderby="pubdate"}
      <h3>{title}</h3>
      <p>{pubdate}</p>
   {/exp:stash:get_list}

https://github.com/croxton/Stash


这似乎是迄今为止最好的想法,但明天需要测试一下。 :) - lealea

0
用一个条目循环和多个频道,从中获取最新的内容并存储起来,然后在RSS订阅中获取存储的内容,这样怎么样?我觉得这个方法应该可行。

我们所做的是将URL创建为条目,并在Magpie周围包装一个条目循环。这可以正常呈现标题和博客,但无法按最近更新的顺序排序条目(最新博客在顶部)。不确定您如何获取stash。 - lealea

0

你可以使用Datagrab来完成,因为它允许你将XML源导入到你自己的网站中,然后你就能将它们作为EE频道条目进行排序。


1
这难道不意味着它将其存储在EE中,占用DB空间吗? - lealea
是的,没错。如果这是一个问题,您可以可能创建一个由cron运行的脚本,在一定时间后删除条目。 - Tyssen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接