月光博客

青青子衿, 悠悠我心, 但为君故, 沉吟至今

« 在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/ ]

本文链接地址:http://www.williamlong.info/archives/1491.html
  • 文章排行:
  • 2.Mojo
  • 等回头试试去,很有用啊,我总想把ID调成连续的,但从没成功过...
  • ip: 61.48.160.*  2008-9-8 9:32:54   回复该留言
  • 3.xjb
  • 不用id作为Permalink的wordpress不存在这个问题
  • ip: 220.169.60.*  2008-9-8 10:51:16   回复该留言
  • 5.流星
  • 果然我id是不连续的……但是执行这个命令,估计要跑好几遍……哎,惨
  • ip: 124.78.2.*  2008-9-8 11:20:30   回复该留言
  • 6.流星
  • 仔细看了看我博客,因为我永久链接是网址/id.html

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

    不过还是想问,如果更改了id,那么对于之前已经有过的搜索引擎记录来说,它还能访问到正确的文章么?感觉应该是不行了吧?
  • ip: 124.78.2.*  2008-9-8 11:22:53   回复该留言
  • 7.hany
  • 一直在使用ZBLOG,能不能多点给ZBLOG的建议啊.
  • ip: 119.122.205.*  2008-9-8 12:18:02   回复该留言
  • 9.misscyf
  • define('WP_POST_REVISIONS', false)这段代码要加在什么位置
  • ip: 60.30.233.*  2008-9-8 15:18:15   回复该留言
  • 12.活龙
  • 月光兄,你给出的代码有不是英文字符的,让我这个外行如何是好?确定每个字符都没错吗?没有引号?

    define ('WP_POST_REVISIONS', false)
  • ip: 124.64.198.*  2008-9-8 16:31:50   回复该留言
  • 14.山猫
  • 请问月光,
    有些人的 wp 发英文引号会被 wp 自作主张改成中文引号,
    而月光的 wp 就没这问题,

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

    谢谢月光
  • ip: 123.65.69.*  2008-9-8 16:42:36   回复该留言
  • 16.活龙
  • 我刚升级到2.6.X,才发现这个烦人的自作聪明的功能。

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

    另,如果我用WP自带的导出功能再导入,是不是与原来的id都不一样了?
  • ip: 124.64.198.*  2008-9-8 17:20:39   回复该留言
  • 21.book
  • 对我们不懂技术的很有用!谢谢月光!
  • ip: 124.89.2.*  2008-9-8 20:50:52   回复该留言
  • 23.Sleven
  • 不错,今天才发现数据库里保存了一大堆旧版本的日志。
  • ip: 59.174.94.*  2008-9-8 22:47:25   回复该留言
  • 26.iiren
  • 用id做永久链接会影响到google的搜索结果吗?
  • ip: 202.76.240.*  2008-9-9 12:35:26   回复该留言
  • 27.鬼火
  • zblog已经够用了-_-
    wp用起来麻烦,我的感觉哈,没有贬低的意思
  • ip: 203.86.30.*  2008-9-9 14:46:07   回复该留言
  • 31.Shawn
  • 请教您一个问题。我用一个全新的 Wordpress 做了一个测试。倘若将不连贯的ID通过您的方法重新梳理成连续的ID,继续发表新文章的时候,ID还是会从之前不连续的数字之后开始起跳,请问这种问题有办法解决么?
  • ip: 125.69.97.*  2008-9-9 16:27:12   回复该留言
  • 32.Shawn
  • 不好意思,我自己解决这个问题了,谢谢您公布的方法。
  • ip: 125.69.97.*  2008-9-9 16:41:42   回复该留言
  • 33.littlewing
  • 倘若将不连贯的ID通过您的方法重新梳理成连续的ID,继续发表新文章的时候,ID还是会从之前不连续的数字之后开始起跳,请问这种问题有办法解决么?
    怎么解决的,不是用导入导出吧?
  • ip: 219.150.138.*  2008-9-9 19:06:47   回复该留言
  • 34.linker
  • 这个之前已经有方法说明了,俺的地盘,俺早先。
  • ip: 123.6.46.*  2008-9-9 23:38:02   回复该留言
  • 36.Elton
  • 谢谢,已经部分搞定了,另外一部分说是SQL查询错误,也懒的管了
  • ip: 218.5.144.*  2008-9-14 22:09:53   回复该留言
  • 37.williamlong
  • ID还是会从之前不连续的数字之后开始起跳,解决的方法是在mysql中修改表结构,点操作,修改auto_increment的数值就可以了。
  •   2008-9-18 16:24:58   回复该留言
  • 39.thewalker
  • 好像不是2.6版本才有这个问题。在我的印象之中,2年前的wp版本的id已经是不连续的了。后来我使用 Zoundry Blog Writer 去发布,id就能够连续。现在我改用 Windows Live Writer 发布,id又重新变成不连续了。但我现在的wp版本才2.5.1.
  • ip: 218.19.200.*  2008-10-5 0:41:47   回复该留言
  • 40.Showfom
  • 实际上你要是用WP自己的上传图片的话,嘿嘿,也会给你一个ID的
  • ip: 219.148.39.*  2008-10-10 4:43:32   回复该留言
  • 41.Heyi
  • 错误
    SQL 查询:

    UPDATE wp_posts SET id =190 WHERE id =206;



    MySQL 返回:

    #1062 - Duplicate entry '190' for key 1
  • ip: 221.7.40.*  2008-10-21 17:38:03   回复该留言
  • 42.thirteen
  • 有个问题,我对数据有绝对的洁癖.
    发现原来一篇你好世界一篇关于占用了ID:1,2,
    但我导入后,ID是从4开始的.
    而且我的旧日志较多,单个文件超过8M了,
    只好分成几个,
    这样,每次导入,ID都会空一,
    能不能解决?
  • ip: 124.234.37.*  2008-10-30 19:34:48   回复该留言
  • 43.HZLZH
  • 我有问题:月光兄弟,我用SQL的时候 解决了连续编号问题~~可是我现在的 连续编号的起点是200多~~~~可是我只有40篇文章,请问在哪里改 自动分配ID的初始值。
    很多人都有这个问题,谢谢你解答 ,发我EMAIL
  • ip: 222.186.101.*  2008-11-1 12:42:48   回复该留言
  • 44.williamlong
  • 楼上,ID还是会从之前不连续的数字之后开始起跳,解决的方法是在mysql中修改表结构,点操作,修改auto_increment的数值就可以了。
  •   2008-11-3 10:52:42   回复该留言
  • 45.刘伟
  • 上传了插件并且添加了代码 还是没有解决问题呀?
  • ip: 123.160.221.*  2008-12-2 17:40:49   回复该留言
  • 46.ShanghaiKer
  • 对于:32楼、34楼、45楼的要重新开始连续ID的要求,在你们的phpmyadmin里的数据库执行一行SQL命令:

    alter table wp_posts AUTO_INCREMENT=n

    其中n为你想新开始的数字,比如把多余的修订删完之后,最后一篇ID为20,此时n为21,大家试试看。
  • ip: 122.224.220.*  2009-2-20 21:52:11   回复该留言
  • 47.紫雨老师
  • 为什么使用raven就会连续,使用Windows Live Writer就不会连续呢?到底是基于什么原因,这个编号会不连续呢?
  • ip: 60.50.17.*  2009-5-16 3:27:46   回复该留言
  • 48.afay

  • 爲什麽我加入define('WP_POST_REVISIONS', false)這一行之後,前臺後臺都白屏了呢?
  • ip: 58.53.117.*  2009-11-24 23:39:26   回复该留言
  • 50.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联系,谢谢
  • ip: 60.191.99.*  2010-1-22 16:19:47   回复该留言
  • 51.armuiesn
  • 怎么一直没有回复啊?
    求助求助求助
    这个怎么根据post_date排序?
    我的blog是通过中间服务商从blogger转过来的,时区有问题,导致文章id不与发表时间顺序一致。
  • ip: 210.32.156.*  2010-2-27 23:25:00   回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 跟随我的推特:跟随我的推特
  • 跟随新浪微博:跟随新浪微博
  • 通过Google订阅本站
  • 通过鲜果订阅本站
  • 通过电子邮件订阅本站

站内搜索

热文排行

最新评论及回复

最近发表

网站收藏

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载本站内容必须也遵循“署名-非商业用途-保持一致”的创作共用协议.

This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.