现在的位置: 首页网站相关|WordPress>正文
website category
对wordpress的文章ID重新编号
2009年03月28日 网站相关|WordPress 评论数 3 ⁄ 被围观 3,687 次+

对ID重新编号的原因基于以下两个方面:
1) WP新版默认打开自动保存和版本控制,如果在线撰写文章的话就会留下很多备份,而每一个备份都会在数据库里留下一个记录,造成数据文件的臃肿,更重要的是最后版本的文章ID号就不连续了。新版WP在控制台里同时隐藏了ID号,不知是不是出于“眼不见心不凡”的考虑。要查看ID号可以到phpmyadmin里打开数据库,或者安装Restore Post Id插件。

2) blog搬家时,尤其是从博客服务商(BSP)转向独立博客时,原有的ID号很可能是所有用户共用,所以ID号会很高。像我之前在yo2上20多篇文章,ID号就跑到了9000多。

从网上查了好多资料,有人提出修改数据库的AUTO_INCREMENT参数,但是这个方法只是对以后新的文章编号起作用,无法对已有的文章重新编号。Mysql网站上也说得很清楚,这个参数无法重设为小于当前编号的数值。

之后终于找到了 Renumber Primary Key 这篇文章,基本上解决了问题。原理很简单,先删除原来的ID列,然后增加同名列ID,属性设为AUTO_INCREMENT。此处还必须指定为PRIMARY KEY,否则会出错。FIRST是将此列放到第一列的位置,否则默认是放在最后一列。

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

提醒大家在修改前都要对原数据库先备份以防万一。但是目前此方法还不是最优化的方法。文章ID修改后,原来相关的标签,分类,评论都还没改过来。对于初建博客的新手来说,手动修改的工作量还不算很大,但是对于文章数很多的博客,此方法并不很适用。

补充:批量修改标签,推荐simple tags插件;修改评论对应的文章ID,目前我是直接在phpmyadmin里写sql语句,每次可以更正一篇文章下的所有评论(将下面的new和old替换为新的ID和旧的ID)

UPDATE `wp_comments` SET `comment_post_ID`=new WHERE `comment_post_ID`=old
分享到: 更多
|2|left

对wordpress的文章ID重新编号:目前有3 条留言

  1. tibet tour : 2009年04月26日4:34 AM 回复

    谢谢 那怎样查看wordpress网站类别编号在那里看

    • thdp : 2009年04月26日10:22 AM 回复

      @tibet tour, 我不是很清楚你的网站类别指的是什么,如果是友情链接的话,在wp_links这个table里。

给我留言


/ 快捷键:Ctrl+Enter