青青子衿, 悠悠我心, 但为君故, 沉吟至今
« 在FeedSky中显示AdSense for Feeds常用在线支付方式对比:PayPal、信用卡和支票 »

解决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;

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



  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

  本文地址:http://www.williamlong.info/archives/1491.html
  • 文章排行:
  • 2.Sleven
  • 不错,今天才发现数据库里保存了一大堆旧版本的日志。
  • 2008/9/8 22:47:25   支持(7)反对(2) 回复
  • 4.Shawn
  • 请教您一个问题。我用一个全新的 Wordpress 做了一个测试。倘若将不连贯的ID通过您的方法重新梳理成连续的ID,继续发表新文章的时候,ID还是会从之前不连续的数字之后开始起跳,请问这种问题有办法解决么?
  • 2008/9/9 16:27:12   支持(9)反对(5) 回复
  • 5.Shawn
  • 不好意思,我自己解决这个问题了,谢谢您公布的方法。
  • 2008/9/9 16:41:42   支持(7)反对(3) 回复
  • 6.Heyi
  • 错误
    SQL 查询:

    UPDATE wp_posts SET id =190 WHERE id =206;



    MySQL 返回:

    #1062 - Duplicate entry '190' for key 1
  • 2008/10/21 17:38:03   支持(8)反对(4) 回复
  • 7.紫雨老师
  • 为什么使用raven就会连续,使用Windows Live Writer就不会连续呢?到底是基于什么原因,这个编号会不连续呢?
  • 2009/5/16 3:27:46   支持(7)反对(3) 回复
  • 11.xjb
  • 不用id作为Permalink的wordpress不存在这个问题
  • 2008/9/8 10:51:16   支持(6)反对(4) 回复
  • 12.流星
  • 果然我id是不连续的……但是执行这个命令,估计要跑好几遍……哎,惨
  • 2008/9/8 11:20:30   支持(6)反对(4) 回复
  • 13.活龙
  • 月光兄,你给出的代码有不是英文字符的,让我这个外行如何是好?确定每个字符都没错吗?没有引号?

    define ('WP_POST_REVISIONS', false)
  • 2008/9/8 16:31:50   支持(5)反对(3) 回复
  • 14.活龙
  • 我刚升级到2.6.X,才发现这个烦人的自作聪明的功能。

    我发现用Live Writer就可以继续连续id。

    另,如果我用WP自带的导出功能再导入,是不是与原来的id都不一样了?
  • 2008/9/8 17:20:39   支持(7)反对(5) 回复
  • 16.xiaokong
  • 一直没敢升级,怕一升就有毛病
  • 2008/9/8 22:29:53   支持(4)反对(2) 回复
  • 17.扯蛋研究所
  • 不连贯的ID可以让抓取软件不那么容易捕捉吧
    您认为呢?
  • 2008/9/8 23:45:07   支持(4)反对(2) 回复
  • 19.thirteen
  • 有个问题,我对数据有绝对的洁癖.
    发现原来一篇你好世界一篇关于占用了ID:1,2,
    但我导入后,ID是从4开始的.
    而且我的旧日志较多,单个文件超过8M了,
    只好分成几个,
    这样,每次导入,ID都会空一,
    能不能解决?
  • 2008/10/30 19:34:48   支持(6)反对(4) 回复
  • 20.ShanghaiKer
  • 对于:32楼、34楼、45楼的要重新开始连续ID的要求,在你们的phpmyadmin里的数据库执行一行SQL命令:

    alter table wp_posts AUTO_INCREMENT=n

    其中n为你想新开始的数字,比如把多余的修订删完之后,最后一篇ID为20,此时n为21,大家试试看。
  • 2009/2/20 21:52:11   支持(5)反对(3) 回复
  • 21.armuies
  • ALTER TABLE `wp_posts` DROP `ID`;
    OPTIMIZE TABLE `wp_posts`;
    ALTER TABLE `wp_posts` ADD `ID` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;

    这个怎么根据post_date排序?
    我的blog是通过中间服务商从blogger转过来的,时区有问题,导致文章id不与发表时间顺序一致。

    email联系,谢谢
  • 2010/1/22 16:19:47   支持(7)反对(5) 回复
  • 22.misscyf
  • define('WP_POST_REVISIONS', false)这段代码要加在什么位置
  • 2008/9/8 15:18:15   支持(6)反对(5) 回复
  • 23.williamlong
  • 代码应该是半角的, 我排版的时候自动转换为全角了。
  • 2008/9/8 16:38:17   支持(6)反对(5) 回复
  • 24.山猫
  • 请问月光,
    有些人的 wp 发英文引号会被 wp 自作主张改成中文引号,
    而月光的 wp 就没这问题,

    请问是怎么回事呀,
    怎么解决的?

    谢谢月光
  • 2008/9/8 16:42:36   支持(6)反对(5) 回复
  • 26.linker
  • 这个之前已经有方法说明了,俺的地盘,俺早先。
  • 2008/9/9 23:38:02   支持(4)反对(3) 回复
  • 27.sanwang
  • 呵呵。 月光怎么不用wordpress呢?
  • 2008/9/14 16:04:49   支持(4)反对(3) 回复
  • 28.armuiesn
  • 怎么一直没有回复啊?
    求助求助求助
    这个怎么根据post_date排序?
    我的blog是通过中间服务商从blogger转过来的,时区有问题,导致文章id不与发表时间顺序一致。
    armuiesn 于 2010-3-27 22:38:41 回复
    还是没有回复啊?????????????????????????????????????????????
  • 2010/2/27 23:25:00   支持(5)反对(5) 回复
  • 29.默哼工作室
  • 太麻烦了,还是不要改了!
  • 2010/10/6 17:57:20   支持(3)反对(3) 回复
  • 30.haobaby
  • 自动保存功能还有点用处的,我遇见过几次停电。白写了。
    有没有办法又保存,文章ID又挨着呢?
  • 2011/8/9 10:00:06   支持(4)反对(4) 回复
  • 31.hany
  • 一直在使用ZBLOG,能不能多点给ZBLOG的建议啊.
  • 2008/9/8 12:18:02   支持(3)反对(4) 回复
  • 33.iiren
  • 用id做永久链接会影响到google的搜索结果吗?
  • 2008/9/9 12:35:26   支持(6)反对(7) 回复
  • 34.Elton
  • 谢谢,已经部分搞定了,另外一部分说是SQL查询错误,也懒的管了
  • 2008/9/14 22:09:53   支持(4)反对(5) 回复
  • 35.williamlong
  • ID还是会从之前不连续的数字之后开始起跳,解决的方法是在mysql中修改表结构,点操作,修改auto_increment的数值就可以了。
  • 2008/9/18 16:24:58   支持(3)反对(4) 回复
  • 36.thewalker
  • 好像不是2.6版本才有这个问题。在我的印象之中,2年前的wp版本的id已经是不连续的了。后来我使用 Zoundry Blog Writer 去发布,id就能够连续。现在我改用 Windows Live Writer 发布,id又重新变成不连续了。但我现在的wp版本才2.5.1.
  • 2008/10/5 0:41:47   支持(6)反对(7) 回复
  • 37.Showfom
  • 实际上你要是用WP自己的上传图片的话,嘿嘿,也会给你一个ID的
  • 2008/10/10 4:43:32   支持(4)反对(5) 回复
  • 38.HZLZH
  • 我有问题:月光兄弟,我用SQL的时候 解决了连续编号问题~~可是我现在的 连续编号的起点是200多~~~~可是我只有40篇文章,请问在哪里改 自动分配ID的初始值。
    很多人都有这个问题,谢谢你解答 ,发我EMAIL
  • 2008/11/1 12:42:48   支持(4)反对(5) 回复
  • 40.流星
  • 仔细看了看我博客,因为我永久链接是网址/id.html

    最近几篇都是不连续,但中间差距的数字是3,只有一个中间差距是5,似乎是因为中间live发表时候我多点了一次,重复了下

    不过还是想问,如果更改了id,那么对于之前已经有过的搜索引擎记录来说,它还能访问到正确的文章么?感觉应该是不行了吧?
  • 2008/9/8 11:22:53   支持(3)反对(5) 回复
  • 43.小人物的博客
  • 支持Z-BLOG,会一直用Z-BLOG
  • 2008/9/8 19:35:45   支持(5)反对(7) 回复
  • 44.book
  • 对我们不懂技术的很有用!谢谢月光!
  • 2008/9/8 20:50:52   支持(3)反对(5) 回复
  • 45.鬼火
  • zblog已经够用了-_-
    wp用起来麻烦,我的感觉哈,没有贬低的意思
  • 2008/9/9 14:46:07   支持(3)反对(5) 回复
  • 46.littlewing
  • 倘若将不连贯的ID通过您的方法重新梳理成连续的ID,继续发表新文章的时候,ID还是会从之前不连续的数字之后开始起跳,请问这种问题有办法解决么?
    怎么解决的,不是用导入导出吧?
  • 2008/9/9 19:06:47   支持(4)反对(6) 回复
  • 47.williamlong
  • 楼上,ID还是会从之前不连续的数字之后开始起跳,解决的方法是在mysql中修改表结构,点操作,修改auto_increment的数值就可以了。
  • 2008/11/3 10:52:42   支持(4)反对(6) 回复
  • 48.xux
  • 没有自动保存多少不爽,月光想办法啊。。。
  • 2010/4/11 16:48:12   支持(3)反对(5) 回复
  • 49.落单的候鸟
  • 这个插件对2.7以后的版本没有用了!
  • 2010/6/6 22:32:42   支持(2)反对(4) 回复
  • 50.F
  • 我也发现不管用了……
    现在我都写一篇然后按这个方法执行一遍= =哎~
  • 2010/8/2 15:43:49   支持(2)反对(4) 回复
  • 51.阿斯达四方
  • 插件 wp-db-backup/wp-db-backup.php 已被禁用,因为发生了错误:插件文件不存在。
  • 2011/10/8 9:08:39   支持(4)反对(6) 回复
  • 54.刘伟
  • 上传了插件并且添加了代码 还是没有解决问题呀?
  • 2008/12/2 17:40:49   支持(1)反对(4) 回复
  • 55.afay

  • 爲什麽我加入define('WP_POST_REVISIONS', false)這一行之後,前臺後臺都白屏了呢?
  • 2009/11/24 23:39:26   支持(3)反对(7) 回复
  • 56.Mojo
  • 等回头试试去,很有用啊,我总想把ID调成连续的,但从没成功过...
  • 2008/9/8 9:32:54   支持(3)反对(8) 回复

发表评论:

 请勿发送垃圾信息、广告、推广信息或链接,这样的信息将会被直接删除。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 关注认证空间:关注QQ空间
  • 通过电子邮件订阅
  • 通过QQ邮件订阅

站内搜索

热文排行


月度排行

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.