非典型的Wordpress blog会遇到RSS更新的问题。比如,我经常更新旧文章,但默认情况下,RSS订阅者是无法感知这些更新的。为了兼顾RSS读者,需要一些特殊处理。
一、xbeta的应对办法
1. 不重要的更新
只更新文章,不做任何特殊处理。
效果:
* 已经读过该文章的读者,无论是通过RSS订阅,还是首页浏览,都无法感知到更新——因为是微小更新,不需要告知他们。
* 而通过搜索引擎到达该文章的读者,看到了最新内容,以防误导。
2. 稍重要的更新
更新文章,并把发表日期提前。
效果:
* 博客首页会显示此文,直接访问网站的读者会注意到这篇文章。
* 提前到前N篇后,就进入了RSS输出范围(wordpress默认为10)后,RSS订阅程序会更新此文。这并不意味着RSS中出出现一篇新的未读文章(原因见下),但在RSS中搜索或阅读时,内容是新的。
3. 非常重要,需要向读者推送的更新
首先,更新文章。比如原文网址为 mini-tc.htm 。(此时无RSS更新)
其次,发表一篇新文章,内容完全同上(或只包括重要的更新内容),比如发布为 update.htm 。(输出了RSS)
最后,在WP目录下的 .htaccess 文件中增加一条重定向记录:Redirect /update.htm /mini-tc.htm
这样,读者既能通过RSS看到新文章提醒;但在访问 update.htm 时,又会无痕跳转到 mini-tc.htm 原文章,不会产生如下的问题。
进阶补充:
* 这个update.htm可以日后继续用于其他文章更新。
* 如果是连载更新,也可跳转到合集的指定位置,如 Redirect /update.htm /mini-tc.htm#part-3
注:本做法是 2011-04-21 明确改进的。以前的做法是:
采用“删除重发,保持原有的URL”的方法,但有副作用:原文的评论都将被删除。手工对策也不完美:①少量或不重要的评论,任由删除。②重要的评论或专文汇总(例),或手工合并为一条,贴在新文章的后面(例该文章第一条评论 xbeta: 2010-03-24 0:23, #4 原有评论汇总:78 条)
附:Google Reader等RSS程序判断更新的原理推测
当wordpress的rss源(比如,http://xbeta.info/wp-rss2.php)更新后,Google Reader这样的RSS程序,会把此时刻的rss内容,与已积累的内容进行比较,然后进行处理。需要说明的是,判断是否为“同一篇文章”的标准,并不是手工设定的url,而是wordpress后台的post ID。如果被认定为同一篇文章,则只做内容更新,并不提示用户有新的未读文章。只有发现新的ID,才告知用户,这里出现了一篇“新文章”。
>
《 “关于WordPress文章修订与RSS同步更新” 》 有 5 条评论
这篇文章本身就是一个手工影响RSS的例子。
本文是yibie网友问到相关问题而做出的解答,实际发表于2010-10-11。因为不希望本文干扰其他读者,就把发表日期设在了1年之前,这样,wordpress RSS 根本不推送本文。
如果未来某一天,我修改其发表时间,让它进入前10篇最新文章之内。那时,wordpress rss就会推送,而Google Reader就会发现是“新”文章,就会提醒RSS用户有“新”的未读文章了。
沙牛于2010-12-24再次问到此问题,标注一下。
之前一直纳闷, 现在终于明白了.
最近我的Google Reader中, 许多出现在首页的文章在里面没有提示, 常常还是显示几天前的, 过来才看到更新, 而有些文章则可以在里面看到更新, 似乎上个月开始的, 之前如同上面描述的那样正常, 感到有些困惑了?
很好,很好,又学习多了些 http://www.88sunn.com/
如果所有的文章都会经常更新,不如使用wiki,看你博客的内容,也确实很适合用wiki而非blog。