开启辅助访问

QQ登录

只需一步,快速开始

使用新浪微博登录

一号多站,快速登录

立即注册 找回密码

魔扣论坛

查看: 295|回复: 4

[经验交流] WordPress完美解决文章ID不连续的方法

[复制链接]
  • TA的每日心情
    开心
    22 小时前
  • 签到天数: 940 天

    连续签到: 59 天

    [LV.10]论坛老兵

    3886

    主题

    4088

    帖子

    3万

    积分

    管理员

    Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

    魔扣币
    139586
    贡献
    15995
    威望
    11907

    最佳新人活跃会员热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2015-12-13 13:00:40 | 显示全部楼层 |阅读模式

    --> 点击购买VIP <----> 点击购买魔扣币 <--【1元 : 50/80/100魔扣币】

     WordPress有个比较讨厌的功能,就是默认情况下发布的文章ID不是连续的,使用ID做为Permalink结构的用户将会看到一个地址越来越混乱的WordPress,之前很多方法都是要修改WordPress代码,导致一升级WordPress,修改就会失效,现在我给一个解决WordPress的ID不连续的完美方法,即使WordPress升级,也不会导致该方法失效。

      找到当前主题目录,在主题目录下到文件functions.php,将下述代码添加到文件里面。

      这样如果你只是单纯发文章,不发页面,不添加菜单,不上传媒体的话,基本上此后的文章ID是连续的,而且不改变之前已经发布的文章ID,不影响SEO。
    1. // WordPress连续ID,禁用草稿功能函数开始
    2. function keep_id_continuous(){
    3. global $wpdb;
    4. $lastID = $wpdb->get_var("SELECT ID FROM $wpdb->posts WHERE post_status = 'publish' OR post_status = 'draft' OR post_status = 'private' OR ( post_status = 'inherit' AND post_type = 'attachment' ) ORDER BY ID DESC LIMIT 1");
    5. $wpdb->query("DELETE FROM $wpdb->posts WHERE ( post_status = 'auto-draft' OR ( post_status = 'inherit' AND post_type = 'revision' ) ) AND ID > $lastID");
    6. $lastID++;
    7. $wpdb->query("ALTER TABLE $wpdb->posts AUTO_INCREMENT = $lastID");
    8. }
    9. // 将函数钩在新建文章、上传媒体和自定义菜单之前。
    10. add_filter( 'load-post-new.php', 'keep_id_continuous' );
    11. add_filter( 'load-media-new.php', 'keep_id_continuous' );
    12. add_filter( 'load-nav-menus.php', 'keep_id_continuous' );
    13. // 禁用自动保存,所以编辑长文章前请注意手动保存。
    14. add_action( 'admin_print_scripts', create_function( '$a', "wp_deregister_script('autosave');" ) );
    15. // 禁用修订版本
    16. remove_action( 'pre_post_update' , 'wp_save_post_revision' );

    17. // WordPress连续ID,禁用草稿功能函数结束

    18. // 使WordPress在原生编辑器(tiny)下发表文章时,不去除空格
    19. add_filter('tiny_mce_before_init', 'preserve_nbsp_chars');
    20. function preserve_nbsp_chars($initArray) {
    21. $initArray['entities'] = '160,nbsp,'.$initArray['entities'];
    22. return $initArray;
    23. }
    复制代码

    技术服务:网站建设丨SEO优化丨运营维护丨主题汉化丨超级托管
    魔扣源码论坛丨客服QQ:1367681973丨微信客服:morko-net

    该用户从未签到

    1

    主题

    121

    帖子

    241

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    120
    贡献
    120
    威望
    0
    发表于 2017-1-4 17:06:20 | 显示全部楼层
    激动人心,无法言表!再次感谢魔扣帮我找到此极品源码!

    该用户从未签到

    1

    主题

    133

    帖子

    265

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    132
    贡献
    132
    威望
    0
    发表于 2017-3-31 23:48:53 | 显示全部楼层
    回个帖子,下班咯~

    该用户从未签到

    1

    主题

    149

    帖子

    297

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    148
    贡献
    148
    威望
    0
    发表于 2017-9-6 15:41:10 来自手机 | 显示全部楼层
    谢谢朋友的精彩点评!谢谢您一直以来的支持和鼓励!感谢网络为我们搭建了交流平台,架起一座交友金桥!让我们相识网络、从陌生到熟悉、到相识相知,成为好朋友。魔扣源码论坛愿我们的友谊似高山大海,今生来世永存!

    该用户从未签到

    2

    主题

    123

    帖子

    244

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    121
    贡献
    121
    威望
    0
    发表于 2018-3-26 14:56:52 | 显示全部楼层
    人世间的每一分温暖和友情,朋友间的每一个牵挂和祝福,都是心灵与心灵的交融!我珍惜我生命中每一个与我有缘的朋友!魔扣源码论坛让我们在交流中理解,在理解中前行!
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表