A-A+

彻底解决wordpress文章ID不连续显示的问题

2013年08月23日 PHP开源系统 评论 58 条 阅读 0 views 次

在最新版的 wordpress 系统中,依然存在着文章ID不连续显示的问题,也就是我们还没有上传多少文章,在数据库里的ID号已经很大了,也就是说如果我们的博客使用的是固定链接,那么在前台显示的ID相差会很大,比如第一篇文章是ID=2,那么第二篇可能就是ID=5或者ID=8了,这就是wordpress文章ID不连续显示的问题了。

其实这个也不能单纯的定义成wordpress的bug,毕竟人家的程序是这样设计的,可能程序上设计得过于完美了,但对于国内许多用户来说,可能更想要连续的ID吧,这样看起来更美观一点,而且对于我来说,数据库中也不会显得更凌乱,当然如果你的固定链接中没有使用post ID,那么对你来说文章ID是透明的,也就无关紧要了。即使固定链接中用了 post ID,如果你不是特别的在意,连不连续也是无关紧要的。

造成wordpress文章ID不连续的原因有如下两点,在 WordPress 系统的设计中,都会有一个自动草稿的功能,就是你在编辑文章的时候,每隔一定的时间会自动将文章保存成草稿,这样设计的目的是保证了在误修改的情况下可以还原之前的内容,但这样会占用数据库许多ID号。

对于我们这样的小博客来说,完全没有必要要这样的功能,那么如何去掉自动保存的草稿功能呢,请看我修改的最新版的 wordpress 系统的方法。

一,首先在 wp-config.php文件中添加如下代码,这两段代码我忘记wp-config.php中是不是已经有了,如果有了就改成如下的参数,如果没有加上去就行了,在测试的时候直接 false 禁用无效,所以后来索性将自动保存的时间间隔设置成了 120000000,这样无论你编辑多长时间都不会产生ID了。

/** 禁用修改版。 */

define('AUTOSAVE_INTERVAL', 120000000 ); // 设置自动保存间隔,单位是秒,默认60

define('WP_POST_REVISIONS', false ); // 禁用文章修订功能

二,还要在后台 wp-admin/ 目录下的 post.php 和 post-new.php 文件中删除掉保存成草稿的代码,如果不删除掉,还是会产生ID号的。

post.php 删除以下代码

[code lang="php"]
/* if ( $last = wp_check_post_lock( $post->ID ) ) {
add_action('admin_notices', '_admin_notice_post_locked' );
} else {
$active_post_lock = wp_set_post_lock( $post->ID );

if ( 'attachment' !== $post_type )
wp_enqueue_script('autosave');
} */

//$title = $post_type_object->labels->edit_item;
//$post = get_post($post_id, OBJECT, 'edit');

//if ( post_type_supports($post_type, 'comments') ) {
//wp_enqueue_script('admin-comments');
//enqueue_comment_hotkeys_js();
//}
[/code]

post-new.php 注释掉 wp_enqueue_script('autosave'); 即可。

总结:至此,已经禁用了文章保存草稿占用数据库ID的问题了,也基本上实现了文章无ID显示的问题了,但这里还有一点要说明的是,除了文章修订版占用大量ID号外,wordpress还有两个方面也会占用数据库的ID号,一个是插件主题,插件主题在设置页面导航时可能会占用几个数据库的ID号,但这是很少量的ID号了,通常不去更换导航,基本上就可以忽略不计了,另一个重点要说的是我们上传的附件也会大量占用ID号,比如上传一个图片,上传一个下载文件等,都会占用一个数据库的ID号,这个是没办法更改的,如果你对自己的页面特洁僻的话,就可以通过 FTP 来上传了,当然如果你能找到解决的方法,可以告诉我一下的,最后大家可以看一下我博客的ID号都是连续的效果。

标签:

58 条留言  访客:58 条  博主:0 条

  1. 阿飞博客

    博主真会折腾WP,为博主这精神支持!

  2. raintrue

    我还是蛮喜欢那个自动保存的哈哈= =一般就是让他自己撸,然后自己再隔段时间删掉一些,至于ID我都已经改名了= =

  3. 寇铈鑫

    亲 有什么插件来禁止么?  代码不会修改啊

  4. 免费部落

    上传图片也会占用ID号,您这个没有提到啊!

    • smiling

      文章的最未端已有提到。

  5. smiling

    你可以在文件里找一下相关的编辑或添加的代码,可能是版本不一样,代码有所不同吧。

  6. 寇铈鑫

    不行啊博主 我的还搞不定 你说的在后台那两个文件里面 都没有找到博主说的代码

  7. 寇铈鑫

    博主 你可谓是这wp里面的专家了吧

  8. 牛逼思维

    升级记得改哦。。
    记不住的可以使用插件控制 super switch; GD Press Tools

  9. 爱浮夸

    自动保存占用ID号也太不先进了吧。

    • smiling

      这是Wp的程序设计,其实这个功能很贴心,很先进,只是对我们来说,不太需要这样的功能。

  10. 莎龙

    其实这个问题需要那么在意吗?如果太在意,我个人感觉比较好的解决方案就是把草稿通过其他关键字保存,取消和ID的关联;
    因为对于大多数用户来说,草稿保存是一个很贴心的功能

    • smiling

      取消与ID的关联,还是会产生ID的,其实保存草稿会保证了在误修改的情况下可以还原之前的内容,还是很贴心的。

  11. 豆腐弄

    其实我觉得不连续挺好的呀。也不会被猜到。

    • smiling

      那就直接不用固定链接就行了。

  12. 大华SEM博客

    连续ID也有利于搜索引擎收录

    • smiling

      这个还真没尝试过,过段时间看一下。

      • 大华SEM博客

        恩,大网站效果比较明显,如资讯、电商类经常采用这类方式,可以看看他们的文章或单品页,这样搜索引擎抓取的时候可以绕开从旧页面抓新页面的方式,改为按数字规律直接抓新页面

  13. 网络茶馆

    你是不是研究wordpress了啊,我想用它做一个门户类的站,你们公司招人不,我去吧,哈哈

    • smiling

      wordpress不适合做门户类的站点呀,我现在和你状况一样,家里顿呢。

  14. 明修网络博客

    很久没来过了,博主换成这种普通主题之后感觉还有点不太适应

    • smiling

      之前的是pj主题博客。

  15. 罗胜

    博主的人气很旺呀,来沾沾光。

    • smiling

      欢迎常来了。

  16. 美国服务器

    原来都是自动保存惹得祸

    • smiling

      自动保存占用大量的ID号。

  17. 小林

    这还真是一个难以解决的问题,以前我也注意到过。不过,不必为它而纠结。

    • smiling

      解决这个问题确实挺头疼的。

  18. 21氪

    wordpress可占cpu

    • smiling

      wordpress一直有这个问题。

  19. 旅行者

    的确,wordpress博客文章ID不连续,当时我就搞不明白了,怎么就就不连续了呢,不过这没有什么影响。

    • smiling

      基本上没什么影响,只要不在意,更改不更改都无所谓的。

  20. 宏骐复合材料

    没留意过这个问题,那个喂老鼠的有意思,玩了会,呵呵!

    • smiling

      哪是一个宠物插件。

  21. 李明

    我觉得文章id不连续问题不大,现在我用EM博客程序,虽然id是连续的,但储存在草稿里的文章有多篇时,我发布文章不会安顺序发布的。

    • smiling

      嗯,其实不用太去在意,EM博客程序博文里的文章好像和草稿是分表存储的。

  22. PHP二次开发

    还真没注意过这个。

  23. 激光设备

    不错啊,我感觉卢松松的zblog模板还是蛮好的,我用的就是,排名不错的。

    • smiling

      嗯,卢松松的模板用的人不少。

  24. 神父

    我的ID都到了6143,文章才100来篇,烦人啊

    • smiling

      那垃圾的ID就有点太多了。

    • 牛逼思维

      有个老插件一直起作用的。。。

  25. 小媒体

    连续的感觉不太好,特别容易被抓取。

    • smiling

      嗯,其实连续不连续都无关紧要的。

  26. 杳耳怠然

    呵呵,我的WP只要能用就可以了,其他的就不去管它了

    • smiling

      嗯,这个只是显得规范一点而已,实质没多大用处。

  27. 哈秀时尚

    过来学习一下

    • smiling

      欢迎来访,已回访。

  28. 锋子

    这个我一般都不怎么在意!

    • smiling

      嗯,其实这个是无关紧要的。

  29. 自由屋博客

    这是针对哪个版本的呢?最新的能行吗?

    • smiling

      3.0以后的版本应该都可以用这个方法的。

      • 自由屋博客

        我看你的还是3.5.2,我刚刚升级了3.6

  30. 自由屋博客

    这是针对哪个版本的呢?

  31. 91二手电脑

    多谢哥们去我网站光顾 刚开张,去的人少 呵呵
    id的问题我也发现了 不过也没必要去关心,并且有固定链接掩饰着呢 看不出个什么 对了 一直不知道怎么在文章中插入代码形式
    是不是用 code 标记?

    • smiling

      如果不是太在意,连不连续也是无关紧要的,在文章中插入代码使用的是 CodeColorer 插件。

  32. 微历史

    我也看到这个问题了,好像标签等之类的也占用编号

    • smiling

      标签是不占用ID的,上传的附件占用ID。

给我留言