WP 2.1 和 UTW 的兼容性问题

这个问题对用 UTW 和 WordPress 2.1 的同学们来说,比较严重。

也许有人已经发现了,当你升到 WordPress 2.1 后,只要有人在你的帖子上留言,或是发 Trackback 或是 Pingback 的时候,帖子的 Tag 就会消失(是被删掉,事实上)。说原因前我先贴一下修补 (via),然后有兴趣的同学再慢慢看原因。

打开 /wp-content/plugins/UltimateTagWarrior/ultimate-tag-warrior-actions.php
在大概第 862 行你会看到:

// Save changes to tags
add_action('publish_post', array('UltimateTagWarriorActions','ultimate_save_tags'));
add_action('edit_post', array('UltimateTagWarriorActions','ultimate_save_tags'));
add_action('save_post', array('UltimateTagWarriorActions','ultimate_save_tags'));
add_action('wp_insert_post', array('UltimateTagWarriorActions','ultimate_save_tags'));

把这些代码注解掉,换上:
// Save changes to tags
add_action('save_post', array('UltimateTagWarriorActions','ultimate_save_tags'));
if($wp_db_version < 3308 ) { // if lesser than WP 2.0
add_action('publish_post', array('UltimateTagWarriorActions','ultimate_save_tags'));
add_action('edit_post', array('UltimateTagWarriorActions','ultimate_save_tags'));
add_action('wp_insert_post', array('UltimateTagWarriorActions','ultimate_save_tags'));
}

这就把问题解决了。

问题的原因 Mark 在他的 Blog 上做了解释。其实这个问题并不单是 WordPress 2.1 的原因,其实在更早的版本这个问题就是潜在存在的,不过是在 2.1 版上被带了出来。也并不单是 UTW 受影响,还有一些比如 Jerome's Keywords 等等往 Custom Field (自定义域?) 里写数据的插件都可能受到影响。Mark 的说明细节部分我就不重复了,有兴趣的人可以去看。简单来说我理解成:这不是我们的问题,这是插件作者的问题,你们对 WP 的机制理解的不够,你们犯下这样这样的错误,你们需要如此如此才行。:wink:

通俗来说,插件作者编写插件让插件自动监视编辑文章的表格,如果是空的,插件就认为文章已经被删除,于是也会把自己在这篇文章的 post_meta 数据删除,这就是为什么 UTW 的 tag 会不见,因为被它自己删除了。但在 2.1 中,edit_post 并不是一定要在写文章或编辑文章时才会调用的,也不是一定要是注册用户的动作才能引发调用的。比如说留言就能引发 edit_post 被调用,这个时候,插件监视到的是一个空的 edit_post,它认为这篇文章已经被删除了,它就非常“智能”地清空了自己留在 post_meta 里的数据。

我用到的往 Custom Field 里写数据的插件包括 UTW, ArticlePostviews,检查了一下,好像除了 UTW 其余两个都没事。大家也可以检查一下自己的插件,如果发现 Custom Field 里面的数据被抹除,可以联系插件作者请修改一下。

更新:看来留言的时候不一定有事,但当你审核留言时,同意后,该留言对应的文章 Tag 会被删掉。虽然审核留言的时候不多,但还是打一下后面的补丁以防万一吧。

再更新:最新的 3.14159265 版的 UTW 宣称解决了上述问题。

Tags: , ,

WordPress 2.1 发布

代号美洲豹的,哦不对,代号 Ella 的 WordPress 2.1 刚刚发布了

因为昨天装了 RC2 所以正式版对我来说变化也不大。发现了几处插件兼容问题:

  • Extended Live Archives 会导致不能把 Page 设为首页。
  • Postviews 1.10 以前的版本会使 Rich Editor 失效。
  • Tiger Style Administration 会使写文章时的 HTML 代码 TAB 错位。

从此 WordPress 2.0.x 将和 2.1 走上两条道路。

从现在起,Wordpress 的发布周期将会缩短,一年内可以会有几次大版本的升级。Wordpress 2.2 会在 4 月 13 号发布。

升级时最好先把旧版本删掉再升级,因为 2.1 改变了新增了很多文件,同时弃用了很多文件。覆盖安装会导致多出很多没用的文件。

Tags: ,

说说 Habari 和 WordPress

habari logo v2

这两天 Habari 已经被讨论的足够多了(好吧,我承认在中文 Blogsphere 里还不够多),大家关注的重点当然是为什么这么一个明星队伍 (Michael Heilemann, Chris J. Davis, Khaled Abou Alfa, Owen Winkler, Skippy) 要离开 WordPress 去重头再去弄一个新的 Blog Engine。虽然这上面这几位都在自己的 Blog 里作出了说明,但似乎还是没法平息人们对 Matt 逼走他们的猜疑,我个人还是认为他们只是想去创造一个按自己想法走的 Blog Engine 的。我看了一些留言,认为绝大数人对 Habari 的理念非常支持,从现在能看到的 Habari 的样品来看,Habari 还是非常值得期待的一个产品。

但必须要清楚的一点是,虽然 Habari 的核心开发人员出自 WordPress,但它们是定位不同的一两款产品。如果不知道这点,还是不忙把手中的 WordPress 换成 Habari,先确定自己是不是真的需要 Habari。

那么Habari 和 WordPress 有什么不同?来说说我的两点看法。

第一

Habari 宣称要建立一个 Meritocracy 的社区,也就是说这个社区没有一个可以决定一切的老大级的人,没有一个绝对不变的核心队伍。只要你对社区的的贡献大,你就可以进核心开发队伍,你就可以决定 Habari 的方向。在 WordPress 社区里,Matt 是老大,他是唯一一个可以对 WordPress 的方向拍板的人,社区成员可以对 WordPress 提出改进意见,可以对发展方向建议,但至于采不采纳你的方案,Matt 说了算。这点跟 Habari 不一样,也是为什么这帮人为什么离开 WordPress 队伍的原因之一。

这两者之间其实没有一个谁更好的问题,采用哪种模式完全是开发者的个人选择。但使用哪种开发模式生产出来的产品却是你自己的个人选择。

第二

WordPress 经过多个版本,已经走向了成熟,用户群体也变的非常庞大,这也使得开发者变得谨慎,功能上不可能有飞跃的变化。Habari 的重点在上,从 Scott 的 Blog 上看,Habari 将会有多少新技术用多少,Habari 会是一个完全的面向对象的系统,支持 OpenID, Cocomment, Atom 发布协议,PHP 将只支持最新的 PHP 5,并且支持 MySQL,PostSQL,SQLite 数据库。

因为这两点,我觉得 Habari 显得更 Geek 一点,开发者首先就是一群 Geek,他们打算把自己的所有对 Blog Engine 的想法都加到 Habari 上,同时也欢迎其他人这么做。项目的组织结构是:只要你牛,你就有决定权。不过这样会增加 Habari 的不确定性,Habari 可能会失去方向。而 WordPress 已经比较成熟了,功能完善,社区庞大,贡献者众多,应该是目前地球上最好的 Blog Engine 了。

我的个人观点

从目前得到的信息,我看好 Habari,但谁知道最后的发展是不是像创始人宣称的那样,事情发展有太多的变数,何况 Habari 现在还在 Alpha 阶段。除非 WordPress 社区不再是现在的 WordPress 社区,我想我还是会坚持使用 WordPress 下去的。直到…………我想换 Habari 的时候。

Tags: ,

想学学 PHP 和 MySQL

因为这个 Blog 是在 WordPress 下搭建起来的,Wordpress 用了经典的 PHP + MySQL 的架构。之前我对这两样东西是一窍不通,只是大概知道是什么东西,包括 CSS 和 HTML 也是,只是闻其名,却是不知其实。好在我这人对电脑的玩票心态很重,之前没接触过,但既然用了 WordPress 就避免不了改改模板啊,改改插件什么的,所以我就去学点相关的知识。之前初中时有点 C 和 DBase III 的底子,所以学起来基本上不算是抓瞎,更好的是有 Google 这个东西,碰见不懂的东西 Google 一下一般就有答案了。从用 WordPress 半年来,从对 PHP,CSS 等等一窍不通到现在能自己改改模版,插件什么的,也算是有进步了,有时候想想也觉得这样也就行了——咱又不是学这个的,能用就行呗。

但内心深处,我是不太甘心只是停留在改改模板的的程度的,今天看 Chris J. Davis 的 Blog,他比较牛,开始不懂 PHP,自己研究 WordPress 的 PHP 源码,最后摇身一变,成了 WordPress Community 里的重大贡献者。当然我没法跟牛人比,不过 Chris 倒是给了我学习 PHP 的动力,我决定以后有空就学一些,除了 PHP,MySQL 也是很有用的东西,现在学点,以后说不定能用的着。

Tags: , ,

升级了 WordPress 2.0.7

距离上次 WordPress 2.0.6 版的释出仅仅十天,2.0.7 版又在一小时前发布。这次版本的更新纯粹是为了修补上个版本的一个低级错误。就连 WordPress Blog 上也说

We know it sucks to have a release only 10 days after our last one.

不过这个升级还是推荐安装的,由于只是一个小更新,所以不必整个升级,只需更新

wp-admin/inline-uploading.php
wp-admin/post.php
wp-includes/classes.php
wp-includes/functions.php
wp-settings.php
wp-includes/version.php

这几个文件就可以了。

我升级后,发现 Dashboard 里默认的 Feed 都没了,有没有人跟我一样?

Tags: ,

页数: 新一页 1 2 3 4 5 6 旧一页