月光博客

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

« 在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调成连续的,但从没成功过...
  • 2008-9-8 9:32:54   回复该留言
  • 5.流星
  • hypfx.comm
  • 果然我id是不连续的……但是执行这个命令,估计要跑好几遍……哎,惨
  • 2008-9-8 11:20:30   回复该留言
  • 6.流星
  • 仔细看了看我博客,因为我永久链接是网址/id.html

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

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

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

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

    谢谢月光
  • 2008-9-8 16:42:36   回复该留言
  • 15.贝斯特qvod视频网
  • wordpress
    还是不习惯用
    英语不好 呵呵
  • 2008-9-8 16:48:35   回复该留言
  • 17.活龙
  • 我刚升级到2.6.X,才发现这个烦人的自作聪明的功能。

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

    另,如果我用WP自带的导出功能再导入,是不是与原来的id都不一样了?
  • 2008-9-8 17:20:39   回复该留言
  • 22.book
  • 对我们不懂技术的很有用!谢谢月光!
  • 2008-9-8 20:50:52   回复该留言
  • 24.Sleven
  • 不错,今天才发现数据库里保存了一大堆旧版本的日志。
  • 2008-9-8 22:47:25   回复该留言
  • 25.扯蛋研究所
  • 不连贯的ID可以让抓取软件不那么容易捕捉吧
    您认为呢?
  • 2008-9-8 23:45:07   回复该留言
  • 32.Shawn
  • ishawn.net
  • 请教您一个问题。我用一个全新的 Wordpress 做了一个测试。倘若将不连贯的ID通过您的方法重新梳理成连续的ID,继续发表新文章的时候,ID还是会从之前不连续的数字之后开始起跳,请问这种问题有办法解决么?
  • 2008-9-9 16:27:12   回复该留言
  • 34.littlewing
  • 倘若将不连贯的ID通过您的方法重新梳理成连续的ID,继续发表新文章的时候,ID还是会从之前不连续的数字之后开始起跳,请问这种问题有办法解决么?
    怎么解决的,不是用导入导出吧?
  • 2008-9-9 19:06:47   回复该留言
  • 35.linker
  • 这个之前已经有方法说明了,俺的地盘,俺早先。
  • 2008-9-9 23:38:02   回复该留言
  • 38.ggggqqqqihc
  • 其实把ID改成连续的实在没什么必要。
  • 2008-9-18 16:14:48   回复该留言
  • 39.williamlong
  • williamlong.info
  • ID还是会从之前不连续的数字之后开始起跳,解决的方法是在mysql中修改表结构,点操作,修改auto_increment的数值就可以了。
  • 2008-9-18 16:24:58   回复该留言
  • 41.thewalker
  • 好像不是2.6版本才有这个问题。在我的印象之中,2年前的wp版本的id已经是不连续的了。后来我使用 Zoundry Blog Writer 去发布,id就能够连续。现在我改用 Windows Live Writer 发布,id又重新变成不连续了。但我现在的wp版本才2.5.1.
  • 2008-10-5 0:41:47   回复该留言
  • 43.Heyi
  • heyi.name
  • 错误
    SQL 查询:

    UPDATE wp_posts SET id =190 WHERE id =206;



    MySQL 返回:

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

    alter table wp_posts AUTO_INCREMENT=n

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

发表评论:

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

订阅博客

  • 订阅我的博客:订阅我的博客
  • 通过Google订阅本站
  • 通过鲜果订阅本站
  • 通过电子邮件订阅本站

站内搜索

热文排行

最新评论及回复

最近发表

网站收藏

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

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