2008年9月8日星期一

解决WordPress 2.6日志ID不连续的方法

  已经发布的WordPress 2.6版有一个很讨厌的功能,就是Post Revisions(文章的版本控制),在默认的情况下,日志的ID将不再连续,使用ID做为Permalink结构的用户将会看到一个地址越来越混乱的WordPress,现在我给一个解决WordPress的ID不连续的方法。

  按照此文的方法,在wp-config.php文件中增加一行define('WP_POST_REVISIONS', false),同时安装“禁用WordPress自动保存的插件”,在WordPress后台启用此插件。

  请注意这两个操作缺一不可,如果不启用“禁用WordPress自动保存的插件”,那么每篇文章都会出现一个自动保存的记录。

  另外,对于数据库有“洁癖”的WordPress用户来说,可能想要删除由于Post Revisions导致的表内的垃圾信息,同时将ID设置为连续,下面是我写的一段SQL脚本,请在phpmyadmin中使用。

  删除是Post Revisions垃圾信息,请执行:

delete from wp_posts where post_type = 'revision';

  将ID重新设置为连续,这个比较麻烦,设置一个ID就要4条SQL语句,我仅仅举一个例子,将ID为59的文章修改为ID为58,需要执行以下语句。

update wp_posts set id = 58 where id = 59;
update wp_term_relationships set object_id = 58 where object_id = 59;
update wp_postmeta set post_id = 58 where post_id = 59;
update wp_comments set comment_post_ID = 58 where comment_post_ID = 59;

  如果用户需要修改的文章较多,需要批量复制、修改和执行上面四行。