天佑一直使用着WordPress 2.1版本,从老早以前的Alpha版本就一直跟着svn走了。他对WordPress 2.1版本了解的比较多一些,也写了一些文章讲了一些WordPress 2.1的问题。
WordPress 2.1有一个feed的问题,在天佑的这篇文章里有详细描述,并向WordPress开发组报了bug #2582。这个问题会影响同时使用全文feed和more标签的用户。当你在文章里使用的more标签时,Blog首页里这篇文章的显示将会在more标签这儿截断,并在后面显示"read more"字样,指向文章页面。从WordPress 2.0系列以前,WordPress对more标签的处理一直是只影响Blog首页,不影响archive页,也不影响feed里的全文输出。但是,WordPress 2.1里却改了,feed里一样会在more标签这儿截断。
我想没人会喜欢这个修改。既然选了feed全文输出,就希望feed里是完整的全文。more标签只是用于维护Blog首页的干净整洁,同时影响feed可不好。随着WordPress 2.1的正式发布,我想会有很多人关注到这个问题。冤有头,债有主,虽然是2006年3月的事了,我还是要查一下这个bug到底是怎么来的。
按照天佑报的bug里的说法,他是在3645版本里发现有这个bug的。我往前找了一下,找到Changeset 3638。很明显,这个bug出现的原因是因为WordPress把wp-rss2.php等文件的载入方式改了。以前是用require()函数载入的,在3638里被改为通过load_template()函数载入。以前WordPress的wp-rdf.php, wp-rss.php, wp-rss2.php, wp-atom.php文件的开头都有一句$more = 1;,这句代码保证了feed的输出的始终是全文。在[3638]里,载入方式被改变,这些feed文件在一个函数里被载入,导致这里的$more变量由全局变量变成了一个局部变量,于是,bug就产生了。
显然这个修改不是WordPress开发组故意为之,而是无心之过。但是,在天佑报了bug以后,Mark说," This is intended behavior."Mark认为这是故意为之,并且认为这种方式更好一些。这个Ticket还吸引了ryan和matt,他们也认为这样更好,并且认为WP 1.5里就是用这种方式处理的,并且还在[4184]里做了一些优化。但是资深WPer天佑立刻指出,WP 1.5和2.0一样,这个改变发生在WP 2.1 Alpha里。
最终,这个事就被这么确定下来了。WordPress开发组完全无视我们强烈的要求,在WordPress 2.1里对feed的输出方式做出这么重大的改变。随着WordPress 2.1的正式发布,会有越来越多的人发现这个问题,就在昨天还有人在天佑的那个ticket里表示了异议。这种输出方式的重大改变,如果确实这种功能的话,也该给一个选项啊,这样强行的改变,不顾广大用户的感受,只凭自己的喜好,出了问题后还狡辩说是故意为之,一个字:可耻!
可笑的是,4个feed文件中的$more = 1;代码依然被保留了下来,还在WordPress 2.1的源代码里静静的躺着。好好的躺着吧,最好一直躺到WordPress 2.2里。
解决的方法嘛,除了按照天佑所说,修改/wp-includes/query.php文件之外,还可以直接修改那4个feed文件,把$more = 1;修改为global $more; $more = 1;,或者$GLOBALS['more'] = 1;。
最后,作为一个懒人,未免以后升级WordPress时需要修改4个feed文件这么劳累,做了个小插件,在WordPress源代码里随便找了个地方插进去,对$more变量做了处理。阿土伯说,傻人有傻福。
请移步到“WordPress 2.1 feed Tuneup”主页下载软件并查看更多信息。
真佩服你这么能折腾,一直不敢升级,还用的2.0.4,自己在localhost测试光FF和IE的兼容问题就把我弄得死去活来,有的时候真想申一个sina blog直接把域名指过去算了,感觉被WP玩了
不折腾怎么办啊,一手养大的Blog,哪能舍得啊。
架设Blog,往大了说,买服务器,放机房里,装Linux系统,装常用软件,配置Apache、PHP、MySQL,配置WordPress,装模版,装插件。各种东西你都要懂。Linux、Apache、PHP、MySQL、html、JavaScript、CSS、PhotoShop、美工,那么多东西那是一个人能弄的了的?所以,把一些东西放一放,直接用比较有名的就可以了。我用的K2和True Blue,在浏览器兼容方面就还好。
我也该省省心,多花点时间在文章内容上比较好,你看我最近的文章全是关于WordPress的。
真要转出去的话,升级到WordPress 2.1,导出WXR,到my.donews.com导入,再把整个地址在.htaccess文件里Redirect过去就OK了。不过,想Redirect回来就难咯。
这几天除了官方,也一直在关注你的Blog!备份过了..打算再升级之前再写一片自己wp插件的整理文章,头绪完全理清,主题等各方面问题搞定以后开始升级
也不能说这么做不好,但是至少它得给我们一个选项,选择是否这样!
yskin,有个问题求助下。WP2.1,我用的Quicktags编辑模式,新建文章的时候工具条上没有lightbox和smp3的快捷按钮,但是修改文章的话,这两个按钮就出来了。不知道是什么愿因啊?谢谢!
super37,N久不见了。
按钮消失问题嘛,不知道,我也没用过Quicktag,一直用的TinyMCE。去查查对应插件的源代码咯。