彻底解决WordPress文章ID不连续的问题

作者: 衔思 分类: 齐分享 发布时间: 2010-11-20 02:13

  涛涛友情提示:本文所谈到的方法不适用于WordPress3.1及其以后版本,如有解决办法,会及时更新。

  涛涛承认自己是个ID控,接触WordPress时间不长,但是绝对不能容忍乱七八糟的ID,写一篇长点的文章能给我占用N多ID,占着茅坑不拉屎还像话么?

  言归正传,首先需要说明,网上也有类似帖子,但是根治不彻底,比如新建文章从旧的ID开始排列,很让我讨厌,步骤如下:

  1、您需要备份自己的数据库和需要更改的相关文件。

  2、安装插件WP Cleaner,作用是删除所有冗余修订版,也就是草稿文章,该操作是不可逆的,涛涛测试没有问题,但是还是建议大家做好备份

  3、修改已有文章ID,SQL脚本,请在phpmyadmin中执行。由于涛涛的文章少,所以手动执行的,本步骤会影响到搜索引擎的收录,下面提供两个方法:

  方法A,自动重新排列搜有文章ID,此方法未经涛涛测试,慎重使用

ALTER TABLE 'wp_posts' DROP 'ID';
OPTIMIZE TABLE 'wp_posts';
ALTER TABLE 'wp_posts' ADD 'ID' BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;

  方法B,手动执行,每次更改一篇文章的ID,如果文章多,工作量会比较大:

update wp_posts set id = 1 where id = 100;
update wp_term_relationships set object_id = 1 where object_id = 100;
update wp_postmeta set post_id = 1 where post_id = 100;
update wp_comments set comment_post_ID = 1 where comment_post_ID = 100;

  本命令的含义是将ID为100的文章ID改为1,注意先后顺序。

  4、打开wp-config.php文件,在 $table_prefix = ‘wp_’; 前面添加代码

define('WP_POST_REVISIONS', false);
define('AUTOSAVE_INTERVAL', false);

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

  5、在以下两个文件中找到代码 wp_enqueue_script(‘autosave’); 给他注释或者删掉:

  wp-admin\post-new.php(大概位置46行)

  wp-admin\post.php(大概位置177行)

  6、找到并打开 wp-admin\includes\post.php 文件,找到 if ( $create_in_db ), 在它的前一行添加

$create_in_db = false;

  7、安装插件 Restore Post Id,作用是恢复文章ID,新建文章将接着之前重新排列后的ID开始,也可以手动执行SQL命令:

alter table wp_posts AUTO_INCREMENT=N

  这里的N是你需要新建文章时开始的ID,比如之前最后一篇文章的ID是100,这里N就等于101。

  通过以上7步骤, 就可以完全解决WordPress文章ID不连续的问题了,有洁癖的童鞋一起行动吧!

  哦,对了,还有一点忘了,至于博文中的图片,不要用WordPress中上传工具上传,那样图片会占用一个ID,建议使用FTP上传后直接插入。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

18条评论
  • tunpishuang

    2011 年 01 月 21 日 下午 1:50

    Firefox 3.6.13 Firefox 3.6.13 Windows XP Windows XP

    wp_posts里面的post_type可以是attachment,post,page,revision这4种,博主的page的id是怎么处理成连续的? :yw

    1. 涛涛

      2011 年 01 月 23 日 下午 6:35

      Internet Explorer 6.0 Internet Explorer 6.0 Windows XP Windows XP

      最近有事,今天才看到。
      attachment是附件,用FTP上传;revision是版本记录,也就是自动保存的;Page不清楚是神马东西,貌似没有研究过,不过按照这个办法完全可以解决ID不连续的问题。

      1. 康橋elish

        2011 年 04 月 18 日 上午 9:19

        Firefox 4.0 Firefox 4.0 Windows 7 Windows 7

        page就是页面嘛,页面也会占用Post id的。

  • smilebull

    2010 年 12 月 12 日 下午 4:59

    Google Chrome 7.0.517.44 Google Chrome 7.0.517.44 Windows 7 Windows 7

    我直接delete from wp_posts where post_type = ‘revision’;清除,只是ID连续还不行

    1. 涛涛

      2010 年 12 月 12 日 下午 5:23

      Internet Explorer 8.0 Internet Explorer 8.0 Windows XP Windows XP

      @smilebull, ID不连续可能还因为你上传的图片文件占用了ID,到数据库POST下面查一下就知道了。

      1. 风花絮

        2012 年 12 月 04 日 下午 11:04

        Safari 5.1 Safari 5.1 iPad iOS 5.1.1 iPad iOS 5.1.1

        是用什么样的命令?谢谢!

        1. 涛涛

          2012 年 12 月 04 日 下午 11:33

          Internet Explorer 8.0 Internet Explorer 8.0 Windows XP Windows XP

          你想达到什么目的?需要的执行的命令在文中已经有写到。 😀

  • smilebull

    2010 年 12 月 11 日 下午 5:39

    Google Chrome 7.0.517.44 Google Chrome 7.0.517.44 Windows 7 Windows 7

    不错不错,做个记号,慢慢学习 :gz

    1. 涛涛

      2010 年 12 月 11 日 下午 5:51

      Internet Explorer 8.0 Internet Explorer 8.0 Windows XP Windows XP

      @smilebull, 没什么可学习的,这个完全可以不用插件实现,我觉得用SQL命令比插件要干净。我后台安装的清理的插件是WP Cleaner,觉得比较好。

  • 无名

    2010 年 12 月 04 日 下午 9:03

    Google Chrome 9.0.576.0 Google Chrome 9.0.576.0 Windows XP Windows XP

    貌似我对ID没有多大的要求!
    只要文章能显示就可以了……

    1. 涛涛

      2010 年 12 月 04 日 下午 9:08

      Internet Explorer 8.0 Internet Explorer 8.0 Windows XP Windows XP

      @无名, 我看着就难受,想当初,写了5篇文章,ID就到100多了,真不知道WP的工程师是怎么想的。。。

  • Dianso

    2010 年 11 月 23 日 下午 4:12

    Google Chrome 7.0.517.44 Google Chrome 7.0.517.44 Windows 7 Windows 7

    这么复杂,又专门的工具都,连评论都能自动转移

    1. 涛涛

      2010 年 11 月 23 日 下午 4:55

      Internet Explorer 8.0 Internet Explorer 8.0 Windows XP Windows XP

      @Dianso, 貌似我笨拙,没有找到此类工具。

      1. Dianso

        2010 年 11 月 23 日 下午 7:08

        Google Chrome 7.0.517.44 Google Chrome 7.0.517.44 Windows 7 Windows 7

        @涛涛, http://www.ludou.org/wordpress-post-id-continuous.html

  • oalleno

    2010 年 11 月 20 日 下午 4:54

    Firefox 3.6.12 Firefox 3.6.12 Windows 7 Windows 7

    有个笨办法,就是一次性连续建立草稿,ID号自然就连续了…

    1. 涛涛

      2010 年 11 月 20 日 下午 5:00

      Internet Explorer 8.0 Internet Explorer 8.0 Windows XP Windows XP

      @oalleno, 这个。。。囧。。。

  • 重庆时时彩

    2010 年 11 月 20 日 下午 1:07

    Internet Explorer 6.0 Internet Explorer 6.0 Windows XP Windows XP

    不明白这个是什么意思

    1. 涛涛

      2010 年 11 月 20 日 下午 1:27

      Internet Explorer 8.0 Internet Explorer 8.0 Windows XP Windows XP

      @重庆时时彩, 就是说,每篇文章都会有一个唯一的数字编号,这个就是ID,最新的WP版本里这个玩意很乱,不连续,然后需要让所有文章都连续在一起。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

在你提交表单前:
Human test by Not Captcha
更多阅读
标签云