有没有办法更新旧的 RSS 提要项目并在提要阅读器中将其设为“未读”?
我的提要是由 liferay 本身从 liferay portlet 创建的,它只显示 1 个项目,因为我只能更新那个项目,我无法创建新的项目/portlet。
如果我编辑我的旧提要,在谷歌阅读器或 Firefox 实时书签中它不会显示为未读,即使我刷新并看到新内容,日期仍然是旧的。
我需要一种方法来通知读者旧的提要已经更新......这可能使用一个项目吗?
好吧,我认为值得尝试的唯一想法是每次更改项目的 GUID 元素。然后试试 RSS 阅读器会有什么反应。
或者,如果可以,请改用 Atom。使用 Atom,您应该能够这样做,因为它允许您设置上次更新的时间(作为 <updated> XML 元素)。如果我是对的,RSS 无法通知提要项目已更改。它只有 <lastBuildDate> 在整个提要上。
如果您已更新您的项目,只需向您的项目添加一个guid
元素并将其更改为新的 guid。guid 可以是任何唯一的字符串。
<item>
<title>...</title>
<link>Link to your item</link>
...
<guid isPermaLink="false">A unique string</guid>
</item>
请注意,您应该添加属性isPermaLink="false"
,否则假定 guid 是一个 url。
来自RSS 2.0 规范:
<item> 的 <guid> 子元素
<guid> 是 <item> 的可选子元素。
guid 代表全局唯一标识符。这是一个唯一标识项目的字符串。如果存在,聚合器可以选择使用此字符串来确定项目是否是新的。
<guid> http://some.server.com/weblogItem3207 </guid>
guid 的语法没有规则。聚合器必须将它们视为字符串。建立字符串的唯一性取决于提要的来源。
如果 guid 元素有一个名为“isPermaLink”且值为 true 的属性,读者可能会认为它是该项目的永久链接,即可以在 Web 浏览器中打开的指向完整项目的 url由 <item> 元素描述。一个例子:
<guid isPermaLink="true"> http://inessential.com/2002/09/01.php#a2 </guid>
isPermaLink 是可选的,其默认值为 true。如果它的值为 false,则 guid 可能不会被假定为 url,或任何特定内容的 url。