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 宣称解决了上述问题。

14 Comment(s)

  1. hhalloyy
    January 28th, 2007 at 4:00 pm

    嘎嘎,人品有问题的人不行 :cool:

  2. kevin
    January 29th, 2007 at 4:18 am

    怪不得
    我一直百思不得其解的说

  3. fishee
    January 29th, 2007 at 7:19 am

    不需审核的留言似乎没事,不过但还是打了一下补丁
    thanks

  4. kevin
    January 29th, 2007 at 8:45 am

    wa
    我的居然回复自动tb的功能了ye :grin:

  5. pute
    January 29th, 2007 at 9:01 am

    我还正准备升级。本机测试有许多问题…………哈哈。

  6. Michael  (Blog Owner)
    January 29th, 2007 at 9:37 am

    kevin, 您那个是 pingback :lol:

  7. kevin
    January 29th, 2007 at 2:24 pm

    这次是不是TB到了呢?
    抱歉啊
    自己删除一条吧:) :idea:

  8. Michael  (Blog Owner)
    January 29th, 2007 at 3:34 pm

    这次是 TB 了,我觉得 :smile:

  9. stane
    January 31st, 2007 at 3:47 pm

    升级到最新的 UTW 就可以了

  10. Michael  (Blog Owner)
    January 31st, 2007 at 4:00 pm

    stane, 问题也出在最新版本上,3.1415926
    我在作者网上没看见比这个更新的啊?

  11. awflasher
    February 11th, 2007 at 9:04 am

    sigh … 3.141592653589 … ^_^

  12. 偶爱偶家
    May 14th, 2007 at 9:06 am

    太感谢了, 虽然还没有碰到这个问题, 不过升级为妙

  13. 商业信息
    August 3rd, 2007 at 3:17 am

    学习学习

  14. Chris
    October 21st, 2007 at 7:44 am

    总算解决了这个问题,谢谢

9 Pingback/Trackback(s)

  1. Wordpress v2.1升级笔记 | TechPush

    January 29th, 2007 at 2:43 am

    1

    [...] Update: UTW与Wordpress 2.1还是有一点小问题,如果你审核了一条留言,那么该留言对应的帖子的Tag就会被删除,具体请看Michael的帖子,里面已经给出了解决方法。 [...]

  2. OtherSide » WP 2.1 和 UTW 的兼容性问题

    January 29th, 2007 at 4:49 am

    2

    [...] 不过现在看到了这篇《WP 2.1 和 UTW 的兼容性问题》,这下应该可以修复了吧。 Posted on 星期一, 01月 29th, 2007 at 11:49 am , filed under 爱踢. You can follow responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site. [...]

  3. OtherSide

    January 29th, 2007 at 2:21 pm

    3

    度谷战事抢鲜报…

    度谷SEO真是一场激战,战场瞬息万变。
    对于百度组,大家清楚看到,排在前面的都是百度自家内容,比如空间、知道、贴吧等。not funny!
    我们只关注谷歌组吧。谷歌组的比赛和打仗一样,一时…

  4. WP 2.1 和 ELA 的兼容性问题 | 巧克力工厂 (Beta3)

    January 30th, 2007 at 4:05 pm

    4

    [...] 看来 Wordpress 2.1 真是个 trouble maker,和 Extended Live Archive 又发现兼容性问题,鉴于用 ELA 的人还挺多的,我拿来说说。估计他们官方又会跑出来说“是你们插件作者的错,不是我们的错”了,嘿嘿。 [...]

  5. 升级到WordPress 2.1 at 肚破惊天 我承认,肚破惊天是一种境界

    January 30th, 2007 at 4:07 pm

    5

    [...] 升级到WordPress 2.1,用的仍是yskin的2.07中文包,并无大碍。 k2主题升级到0.95RC1。插入连接的按钮怎么跑右边了。晕。 UTW升级到3.1415926。之前非常担心会在2.1下失效的Page Post 2,也照常运行。另外,傻逼妹在2.1中运行正常。我使用的其他插件暂时没有因升级而失效的。 暂时没有发现什么问题,浏览过程中如果大家有见到麻烦通个信。也没有发现什么好玩儿的。 此专辑中有我此次升级的一些截图。 坦白说很讨厌这种频繁地升级。想想DZ升级的频繁,我很欣慰。 update:刚注意到,友情连接的排序给搞乱了。巧克力工厂提到了UTW和ELA在2.1中的问题,我暂时还没有发现。随后的更新中应该会有,我没有那么幸运。 [...]

  6. 要升级wordpress 2.1 ELLA,得做好准备 - Life is Dox

    February 6th, 2007 at 7:29 am

    6

    [...] UTW插件的问题: 插件作者在自己的页面上说,已经兼容wp2.1了,发表评论不会再删除文章的tags,但是审核一个评论却会删除。还有其他一些问题,解决起来似乎都很麻烦。作者也没有提出更新的解决方案。还是要再等等看吧。另外还有一两篇文章提到这个问题:http://bemike.org/blog/2007/01/28/compatibility-issue-between-wp-and-utw.html, http://ocaoimh.ie/2007/01/23/the-new-wp-utw-gotcha/ [...]

  7. kill preview与wordpress2.1不兼容 at y0ungs的blog

    February 26th, 2007 at 12:59 pm

    7

    [...] 4.与UTW兼容性问题,可升级到3.14159265解决 [...]

  8. links for 2007-02-02 | Smartr.cn

    April 27th, 2007 at 2:06 pm

    8

    [...] WP 2.1 和 UTW 的兼容性问题 | 巧克力工厂 (Beta3) [...]

  9. 新版UTW导致离线发文丢失tags | 偶爱偶家

    May 15th, 2007 at 10:39 am

    9

    [...] Ultimate Tag Warrior 跟wordpress2.1有兼容性问题 — “ WP 2.1 和 UTW 的兼容性问题 ”, 虽然我一直在用 Ultimate Tag Warrior 没有碰到过, [...]


RSS feed for comments on this post · TrackBack URI

Leave a reply