月光博客 » 编程开发 » 解决WordPress 2.6日志ID不连续的方法

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

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

顶一下 ▲()   踩一下 ▼()

相关文章

  1. 1
    diytz   说道:
    恩,准备用下WP~~
    支持(7反对(2回复
  1. 2
    Sleven   说道:
    不错,今天才发现数据库里保存了一大堆旧版本的日志。
    支持(7反对(2回复
  1. 3
    soso126   说道:
    一直没敢升级
    支持(8反对(4回复
  1. 4
    Shawn   说道:
    请教您一个问题。我用一个全新的 Wordpress 做了一个测试。倘若将不连贯的ID通过您的方法重新梳理成连续的ID,继续发表新文章的时候,ID还是会从之前不连续的数字之后开始起跳,请问这种问题有办法解决么?
    支持(9反对(5回复
  1. 5
    Shawn   说道:
    不好意思,我自己解决这个问题了,谢谢您公布的方法。
    支持(7反对(3回复
  1. 6
    Heyi   说道:
    错误
    SQL 查询:

    UPDATE wp_posts SET id =190 WHERE id =206;



    MySQL 返回:

    #1062 - Duplicate entry '190' for key 1
    支持(8反对(4回复
  1. 7
    紫雨老师   说道:
    为什么使用raven就会连续,使用Windows Live Writer就不会连续呢?到底是基于什么原因,这个编号会不连续呢?
    支持(7反对(3回复
  1. 8
    Zhilong   说道:
    一直用Zblog
    支持(9反对(6回复
  1. 9
    中秋节   说道:
    暂时还没用wp
    支持(6反对(3回复
  1. 10
    百家网络博客   说道:
    批量~手动~
    支持(6反对(3回复
  1. 11
    xjb   说道:
    不用id作为Permalink的wordpress不存在这个问题
    支持(6反对(4回复
  1. 12
    流星   说道:
    果然我id是不连续的……但是执行这个命令,估计要跑好几遍……哎,惨
    支持(6反对(4回复
  1. 13
    活龙   说道:
    月光兄,你给出的代码有不是英文字符的,让我这个外行如何是好?确定每个字符都没错吗?没有引号?

    define ('WP_POST_REVISIONS', false)
    支持(5反对(3回复
  1. 14
    活龙   说道:
    我刚升级到2.6.X,才发现这个烦人的自作聪明的功能。

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

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

    alter table wp_posts AUTO_INCREMENT=n

    其中n为你想新开始的数字,比如把多余的修订删完之后,最后一篇ID为20,此时n为21,大家试试看。
    支持(5反对(3回复
  1. 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联系,谢谢
    支持(7反对(5回复
  1. 22
    misscyf   说道:
    define('WP_POST_REVISIONS', false)这段代码要加在什么位置
    支持(6反对(5回复
  1. 23
    williamlong   说道:
    代码应该是半角的, 我排版的时候自动转换为全角了。
    支持(6反对(5回复
  1. 24
    山猫   说道:
    请问月光,
    有些人的 wp 发英文引号会被 wp 自作主张改成中文引号,
    而月光的 wp 就没这问题,

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

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

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

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

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

发表留言