I am LAZY bones? AN ancient AND boring SITE

2009年 09月 02日 的归档

终于修复了feed输出在GR中的换行问题

最近很多人给我留言,说我的feed输出在Google Reader里不正常,所有格式都没了,换行也不见了。
但是我用thunderbird订阅自己的blog却是很正常的,为此特意用GR订阅了自己的blog看了下,确实是所有文字都成了一陀,惨不忍睹。
为此,近几天找了好久的原因,到现在,虽然根本原因还是没找到,不过换行问题算是暂时解决了。
我对比了自己的feed输出和其他WP的blog的输出,其实格式上都是一样的,都是xml里没个item都有description和content:encoded两块内容,其中description里是没有任何换行标记的摘要,一般长度不会很长,也就是说会截断文章;而content:encoded里才是真正的HTML化的全文内容,一般在WP的后台选择了feed输出全文以后,这段才会有。
但是我一直是选择输出全文的,为什么还是会乱掉呢?莫非GR只认我的description那段了?而thunderbird等却可以显示真正的全文,这样的解释倒是可以说明为什么在不同的阅读器里会有不同的表现。
意识到这一点后,我就想干脆把feed里的description那段去掉得了,于是看下了WP的代码,找到了 wp-includes/feed-rss2.php 的47行,

<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>

然后把这行给删掉了。终于实现了在GR里断行,哈哈。
剩下的问题是,为什么大家都有description,但是只有我的显示有问题?难道xml里有指定用不用description的字段么?
哦,还得记得下次升级了WP以后,都得再改一次这个文件。。。

======== 20090902 16:52 update ========
原来还有一个文件没有改过来,导致刚才订阅 http://li2z.cn/feed/atom/ 的同学还是乱的,但是订阅 http://li2z.cn/feed/ 的同学就是正常的。。。
于是再删掉 wp-includes/feed-atom.php 的第44行:

<summary type="<?php html_type_rss(); ?>"><![CDATA[<?php the_excerpt_rss(); ?>]]></summary>

这回,应该都好了吧。。。