首先,我承认我有ID强迫症,看到那不连续的ID号我就浑身不舒服。在犹豫了很久之后,今天下午终于对我亲爱的博客动刀了。找了很多方法,又仔细的对比了一下,还是发现下面的方法比较好。也推荐个有这种癖好的站长使用。。。

WordPress有一个很讨厌的功能文章的版本控制,在默认的情况下,日志的ID将不再连续,加之wordpress的自动保存草稿功能,使用ID做为固定链接结构的用户将会看到文章日志的ID越跳越大。下面介绍的方法,可以清除数据库垃圾,彻底解决文章ID不连续的问题。

1.备份数据库和需要修改的相关文件。这是一个良好的习惯,可以避免很多悲剧的事情发生,切记!!!

2.进入数据库,运行SQL查询,执行以下命令

delete from wp_posts where post_type = 'revision';

3.此命令在于删除Posts中的垃圾数据。
选中所有表,在[选中项]中选择优化表,执行。

4.修改文章ID。这个如果你文章多的话将会是个艰巨的工程。附注:请先看文章尾部的说明再进行这一步的操作,你会省去很多力气和时间。

update wp_posts set id = 1 where id = 10;

update wp_term_relationships set object_id = 1 where object_id = 10;

update wp_postmeta set post_id = 1 where post_id = 10;

update wp_comments set comment_post_ID = 1 where comment_post_ID = 10;

上面示例代码意义为:把ID=10修改为ID=1。请根据自己的文章ID更改,

5.打开wp-config.php文件,在 $table_prefix = ‘wp_’; 前添加以下代码

define('WP_POST_REVISIONS', false);

define('AUTOSAVE_INTERVAL', false);

此命令在于关闭默认的版本记录以及自动保存草稿功能。

6.在以下两个文件中找到 wp_enqueue_script(‘autosave’); 注释掉。注释方法为在前面加双斜线 //

wp-adminpost-new.php

wp-adminpost.php

7.打开 wp-adminincludespost.php 文件,找到 if ( $create_in_db ), 在它的前一行添加

$create_in_db = false;

注意:此语句在WP3.1版本中会造成BUG,导致后台发布文章提示没有权限修改的问题。如果您的博客是3.1版本,请权衡利弊,是否要使用这个功能。据我实验,添加此语句后,虽然不能在后台直接发布文章,但可以通过Windows Live Writer离线编辑器发布。

8.安装插件 Restore Post Id或手动执行SQL命令:

alter table wp_posts AUTO_INCREMENT= N

此命令在于恢复文章ID。这里的N是你添加新文章的ID。比如现在最后一篇文章的ID是100,则N=101。

好了,再看看你的Posts列表,是不是很整洁,O(∩_∩)O哈哈~

注意:

  1. 在wordpress后台上传图片,图片会占用ID。建议FTP上传后插入。
  2. 升级wordpress后需重新更改相关文件。

附注:在网上看到Ludou高人写的一个PHP脚本,你可以在下面下载,下载后用文本编辑器打开,根据开头的说明修改数据库信息,然后将该PHP文件上传至你的博客空间,运行一下看到OK就可以了,然后你可以到phpmyadmin中查看wp_posts表中的id是不是连续的。还是那句话,开始之前请先备份你的数据库。(如果你使用了post id作为固定链接,那么将可能改变所有文章的网址,会影响搜索引擎收录;如果你用的插件建立了新的数据库表,如投票插件等,也将会出现问题;如果你的博客中创建了父子关系的页面,运行了以下脚本将会失去此关系。请慎用!)此时可能你的数据库里还会有为数不多的ID不连续的情况,对于追求完美的你来说,这时就需要根据上面第4条手动操作了。操作的时候一定要认真认真再认真!祝愿你的ID经过自动整理后是完全连续的,那样就不用再费力气了~!

点此下载

最后修改:2020 年 12 月 03 日 04 : 24 PM