WordPress 2.0.6 发布

昨晚还在想,WordPress 2.0.6应该快发布了,要准备一下,没想到今天早上一上网,看WordPress的changeset时发现/wp-includes/version.php文件已经被修改了,WordPress 2.0.6已于昨晚9点24分正式发布了。哈,从RC2到release还真是快啊。

这个版本更新不大,具体更新有下列几项:

  1. 在wp_redirect()函数后使用exit命令以结束脚本的运行。[4470]
    只不过有的地方用exit;,有的地方用exit();,呵呵。
  2. 使用$wp=& new WP();这样的代码,添加了&符号。[4487]
    开始觉得这样是为了提高执行速度,后来看了#3267,里面提到$wp = new WP();会"get destroyed before the shutdown hook is called"(在shutdown hook被调用之前销毁),而$wp =& new WP();,"This extends the life of these objects to _after_ the shutdown hook is called."(这将使这些对象的生命期延续到shutdown hook被调用之后。)
    复杂复杂,牵涉到PHP自动销毁对象的问题。
  3. 修正WordPress 2.0.5遗留的,当PHP运行在FastCGI模式时,WP使用wp_redirect()函数进行302转向时出现500错误的bug。[via] [4514]
  4. 解决当MySQL运行在strict mode时在上传文件时出现"WordPress database error: [Field 'post_content_filtered' doesn't have a default value]"错误的问题。[4530]
    现在不用再做那个数据库hack了。
  5. sidebar的按月存档(Archives)列表中的日期格式现在被i18n化了。(所有调用wp_get_archives()函数实现显示按月存档的,无论模版还是Widgets还是SBM,都将被影响)以前要把按月存档(Archives)列表改为中文日期格式需要修改WordPress源代码,点点游做的WordPress中文版就是这么做的。现在WordPress语言包已经可以控制日期格式了。
    这个事情还真是麻烦,最早是2005年7月28日有人报了bug #1540,要求把按月存档的日期格式i18n化。后来我又报了一个#3307。再后来,Ryan终于在[4545]里做了修改。不过,Ryan犯了两个错误,写错了__()函数的名称和错改了两个不该被i18n化的字符串。然后,nbachiyski报了bug #3438,要求把那两个错改的字符串改回来,结果被Mark无情地驳回。我又在#3438里对这个问题做了更详细的说明,最终Mark表示认同。Ryan在[4636][4641]里把两个错误都改正了。唉,一点点小事,费了这么大周折。
  6. gettext中,array_shift()函数的参数要求是一个变量,而非函数的返回值。[via] [4555]
  7. 修正了处理MD5字符串的正则表达式的错误。[4581]
    这儿可能引起攻击,不过我没想出攻击的办法。
  8. 在删除文章时,修改属于该文章的附件的post_parent值。[4602]
  9. 一个新过滤器"query",允许插件截获SQL语句,并进行处理。需要注意的是,有些SQL语句是在插件被载入之前被发送的,如果要对这部分SQL语句进行处理,则需要插件放一个特殊的文件做hack,并且需要使用WP 2.1才行。[4620]
  10. Quicktags(就是不使用可视化编辑器时编辑框上面的一排小按钮)现在可以在Safari浏览器中使用了。[4640]
  11. 新的anti-XSS function(防XSS跨站脚本攻击的函数)——attribute_escape()。[4656]
    其实里面就一行代码:return wp_specialchars($text, true);
  12. 添加了"js_escape"和"attribute_escape"两个过滤器。[4661]
  13. 修正了某些恶意评论破坏Blog页面的问题。#2714 [4662]
  14. 在clean_url()函数里对协议名称进行检查。[4672]
    报的bug在#3515,里面给出的代码我尝试了一下,就是下面的第一个评论。点一下评论作者名称,就会弹出一个对话框显示cookie。
  15. 接收Trackback并进行处理时的一些调整。[4677]
    这个修改有点麻烦,stripslashes()函数是不可以乱用的。[via]
  16. Blogger导入工具现在写明只能导入旧的blogger.com帐号,不能支持Google新推出的Blogger。这是因为Google在2006年12月底已经把以前的Blogger beta正式发布了。[4680]
  17. Akismet做了点小修改,把整理wp_comments表的概率从4/5降低到1/1000。

参考:在WordPress 2.0.6里被解决的bug列表WordPress 2.0.6 Content Summar。从后一个地址得到一个消息:

The WordPress 2.0 series is now officially on its way to becoming part of the Debian Stable product and as a result, and as discussed in October, patches will continue to be released in 2.0 series for the next 3-5 years.

看来,WordPress 2.0系列要一直更新下去了。嘿嘿,等到WordPress 2.0.10的时候,我就是元老啦。

WordPress 2.0.6的升级方法嘛,上传文件,覆盖,完了。有需要修改的文件,比如/wp-includes/wp-db.php文件,记得修改下。

另外,WordPress 中文包已更新,没啥变化,除了Blogger导入工具有所修改,以及“按月存档”列表日期格式的i18n化。我把月份的翻译全部改成了类似“1月”这样,然后把"%1$s %2$d"翻译成"%2$d年%1$05s",这样,sidebar里的“按月存档”就会显示成“2006年01月”、“2006年11月”这样了。要求Blog编码方式使用UTF-8时才行,因为UTF-8里汉字占3个字节,再加上两位数字,正好5位。我翻了半天PHP手册才弄出来的,很不错吧 :)

WordPress在中文世界有不少人在使用,虽然国内的IIS+ASP主机的价格比Apache+PHP要便宜很多。每次WordPress升级,都会例行性地出现一些现象:很多Blog上会写一篇文章,《WordPress 2.0.6发布啦》,然后配上从WordPress开发日志里拷过来的几条更新日志,有的直接贴英文原文,好心一点的还给翻译下。然后再贴一段广为流传的极其复杂的升级步骤,大致是“备份某些文件,停用插件,再删除全部文件,上传新文件,恢复某些文件,再一个一个启用插件。”同时,还会有一帮人大呼小叫。比如,“没必要升级新版,够用就好。”、“2.0.5和2.0.6相比哪个速度更快些?”、“中文版发布了吗?”。够用就好是不错,不过,这种小升级一般都是bug fix,你连changelog都不看就可以断定这些bug不会影响到你吗?速度更快么,这种小升级哪能比较出速度来?又不是WP 1.5和WP 2.0相比。中文版,唉,很多人需要的是中文版,中文包用不了,建一个目录上传一个文件太累了。而且,2.0.6的中文包比起上一版来只增加了几项,新中文包没出来之前,先升级了WordPress本身又能怎样?

另外,我一直认为WordPress开发组发布新版本是为了修复bug的,可是某些人却一直确信,WordPress开发组发布新版本是为了制造bug,让WordPress运行速度更慢,或者是无聊想逼着用户升级的。

P.S. WordPress 2.0.7已经在筹备中,WordPress 2.1已经beta 1了,期待ing。既然2.1已经beta了,大概WordPress开发组会把工作中心转到2.1上吧,2.1应该会在2.0.7之前发布。

Update:偶然间看到/wp-includes/wp-db.php文件的最后$wpdb = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);这一句还没有加上&符号,不知道会不会引起问题。WordPress开发组好像已经开始着手解决WordPress运行在PHP 5.2和FastCGI下的问题,Mark已经弄了个PHP 5.2的测试环境。svn里已经有了做了一些修改,这个问题有望在WordPress 2.0.7里和WordPress 2.1里解决。

WordPress 2.0.5里有几个攻击办法,正在研究中。

本文共有 11 条评论WordPress 2.0.6 发布


  1. 1 test

    test for WordPress 2.0.5 bug.

  2. 2 Wady

    额……要16号才能更新了……那时侯才能到家

  3. 3 fishee

    那……还是等2.1再一起更新吧……hoho

  4. 4 Keenzy

    yskin,请教下,你说升级要改/wp-includes/wp-db.php
    具体说明下好吗?

  5. 5 yskin

    /wp-includes/wp-db.php文件里不是要加上$this->query("SET NAMES 'utf8'");这句吗?

  6. 6 Keenzy

    上次升到2.05我就没加啊,为什么要加呢,请教^_^

  7. 7 rojro

    你是信阳的老乡吗?icp怎么是广东的?

  8. 8 underone

    “可是某些人却一直确信,WordPress开发组发布新版本是为了制造bug,让WordPress运行速度更慢,或者是无聊想逼着用户升级的。”

    hahahahahahaha :)

  9. 9 yskin

    我的ICP是广东深圳电信。河南信阳?为啥会认为我是信阳的?

  10. 10 TT

    嗯,正准备重新使用wordpress~

  11. 11 fany

    yskin,你好。我按照你所说的方法,加了中文包.可是访问页面时是空的。什么都没有.不知道什么原因?它也不出错,就是空页面.郁闷哦.请教.

请留下您的评论: