857.学习笔记:WP文章ID重新排序的方法

前些天看到lhcy.org对博客文章ID进行了重新排序,考虑到自己博客ID越来越大而且并不连贯,看起来好纠结。在几番周折之后,终于顺利地运用两段SQL语句,对博客文章ID进行了重新排序。对WP文章ID重新排序的方法如下:
1)先禁止文章自动保存与修订版本,方法是安装并启用这个插件:Super Switch。
检查占用ID的地方:日志、文章分类、附件、友链等。
2)删除修订版本、草稿、垃圾等占用的ID行,删除SQL语句网上找(不多的话可以在SQL里手动删除)。
3)进入数据库,打开表wp_posts,记下ID的数量(比如有363行,共363个ID),从页面全部复制到Excel中处理(他比较熟悉Excel),先找到前面4种占用ID的情况,在ID旁边插入1列,赋予新的ID。
4)再在Excel新建一个页面,把下面4行SQL语句一行一列粘贴进去,然后加入前面的新、旧ID,套入公式往下拖动,最后,4行SQL语句变成4列SQL语句。
5)再进入数据库,点击最上方导航栏里的“SQL”,批量粘贴进去在Excel中生成好的4列SQL语句,点击右侧“执行”,完成新、旧ID的替换。
6)最后一步,再执行一条SQL语句,使以后的文章按刚梳理后的最大ID往后连续编号。
7)往后文章分类、附件、友链等都不随意增减,仅仅发布纯文本内容的日志,原则上ID会一直连续下去。需要注意一点:往后点开“写文章”时,必须先手动保存1次草稿(首先占用1个ID),不然禁止自动保存草稿的插件不管用,而仍会自动保存下去。

第一段SQL语句:
update wp_posts set id = 新ID where id = 原ID;
update wp_term_relationships set object_id = 新ID where object_id = 原ID;
update wp_postmeta set post_id = 新ID where post_id = 原ID;
update wp_comments set comment_post_ID = 新ID where comment_post_ID = 原ID;

第二段SQL语句:
alter table wp_posts AUTO_INCREMENT=重新排序后最大的ID

(以上两段SQL语句是从网上搜索到的,在此感谢分享者。)

后记:经测试,发现点开“写文章”后,如不首先手动保存占用1个ID的话,自动保存草稿功能仍会执行。

11 thoughts on “857.学习笔记:WP文章ID重新排序的方法”

  1. 我记得原来有个方法,就是在博客建立就建10000个草稿,这10000个序号是按序来的,发布文章编辑就可以了。

  2. 这也能折腾!听说typecho不能乱动,否则上传的附件和图片都会出问题,强迫症忍一忍就过去了,懒得动啊。

  3. 修订版本我已经用插件禁用了,可以减少数据库空间。而自动草稿这个,我试过n多种方法都不行,都会有一个自动草稿。不过,可以用wp-sweep插件来清除,而且一周内不管它它也会自动删除。而看到你的操作方法,我的天……不过我看我的rss里你的文章没有错乱,你的方法应该是有效的。

    1. 自动草稿这个确实好多插件都不管用。我的办法就是点开“写文章”之后,立即手动点一次“保存”,然后就不会有自动保存草稿了。

  4. 我倾向于使用自定义的slug组成URL,这样比较稳定。id只作为数据库内部使用。

    1. slug就是日志标题的拼音吧,与分类或日期用/隔开吧,然后.html静态,看起来确实也比较稳定。
      只是,名称会比较长了,

        1. 这个方法方便知道文章发布日期,有没有一种办法,即方便知道发表日期又方便知道日志数量呢。

Comments are closed.