WordPress完美解决文章ID不连续的方法

释放双眼,带上耳机,听听看~!

前言:
WordPress 让人讨厌的特性之一是默认发布的文章的 ID 不是连续的。 使用 ID 作为永久链接结构的用户会看到一个地址越来越混乱的 WordPress。 许多方法用于修改 WordPress 代码,这将导致修改在WordPress升级后立即失效。下面我就给出一个完美的方法来解决WordPress的ID不连续, 即使WordPress升级了,这种方法也不会失效。

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

这样如果你只是单纯发文章,不发页面,不添加菜单,不上传媒体的话,基本上此后的文章 ID 是连续的,而且不改变之前已经发布的文章 ID,不影响 SEO.

代码如下(二选一):

方法一:

// WordPress连续ID,禁用草稿功能函数开始
function keep_id_continuous(){
 global $wpdb;
 $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");
 $wpdb->query("DELETE FROM $wpdb->posts WHERE ( post_status = 'auto-draft' OR ( post_status = 'inherit' AND post_type = 'revision' ) ) AND ID > $lastID");
 $lastID++;
 $wpdb->query("ALTER TABLE $wpdb->posts AUTO_INCREMENT = $lastID");
}
// 将函数钩在新建文章、上传媒体和自定义菜单之前。
add_filter( 'load-post-new.php', 'keep_id_continuous' );
add_filter( 'load-media-new.php', 'keep_id_continuous' );
add_filter( 'load-nav-menus.php', 'keep_id_continuous' );
// 禁用自动保存,所以编辑长文章前请注意手动保存。
add_action( 'admin_print_scripts', create_function( '$a', "wp_deregister_script('autosave');" ) );
// 禁用修订版本
remove_action( 'pre_post_update' , 'wp_save_post_revision' );
// 使WordPress在原生编辑器(tiny)下发表文章时,不去除空格
add_filter('tiny_mce_before_init', 'preserve_nbsp_chars');
function preserve_nbsp_chars($initArray) {
$initArray['entities'] = '160,nbsp,'.$initArray['entities'];
return $initArray;
}

方法二:

// WordPress连续ID,禁用草稿功能函数开始
function keep_id_continuous(){
  global $wpdb;
  // 删掉自动草稿和修订版
  $wpdb->query("DELETE FROM `$wpdb->posts` WHERE `post_status` = 'auto-draft' OR `post_type` = 'revision'");
  // 自增值小于现有最大ID,MySQL会自动设置正确的自增值
  $wpdb->query("ALTER TABLE `$wpdb->posts` AUTO_INCREMENT = 1");  
}
// 将函数钩在新建文章、上传媒体和自定义菜单之前
add_filter( 'load-post-new.php', 'keep_id_continuous' );
add_filter( 'load-media-new.php', 'keep_id_continuous' );
add_filter( 'load-nav-menus.php', 'keep_id_continuous' );
// 禁用自动保存,所以编辑长文章前请注意手动保存。
add_action( 'admin_print_scripts', create_function( '$a', "wp_deregister_script('autosave');" ) );
// 禁用修订版本
remove_action( 'pre_post_update' , 'wp_save_post_revision' );
// 禁用修订版本 
add_filter( 'wp_revisions_to_keep', 'specs_wp_revisions_to_keep', 10, 2 );
function specs_wp_revisions_to_keep( $num, $post ) {
   if ( 'post_type' == $post->post_type )
      $num = 0;
   return $num;
}
// 使WordPress在原生编辑器(tiny)下发表文章时,不去除空格
add_filter('tiny_mce_before_init', 'preserve_nbsp_chars');
function preserve_nbsp_chars($initArray) {
$initArray['entities'] = '160,nbsp,'.$initArray['entities'];
return $initArray;
}

二个代码自行觉得哪个实用就用哪一个,如果出现自动删除文章就把//删掉自动草稿和修订版注释了。

给TA充电
共{{data.count}}人
人已充电
WordPress教程技术教程源码分享

怎么统计文章字数?

2022-7-24 22:33:38

文章聚合源码分享

MCSManager —— 全中文,分布式,虚拟化,开箱即用,支持 Minecraft 和其他游戏的服务端管理面板

2022-4-10 19:22:35

版权免责声明

请使用迅雷软件下载,否则个别下载链接无法打开

1、本网站名称:彽调菂猫博客
2、本站永久网址:https://www.wtdxz.com
3、 本站大部分资源解压密码均为: www.wtdxz.com 如密码有误,请查看此处【解压密码】
4、请勿随意转载/分享/“菜”集本站资源,转载/分享/”菜”集请添加本站链接。
5、本站资源来源于互联网收集/个人购买,如有侵犯到您的权益,请查看【版权声明】
6、本站提供的所有资源均来自互联网搜索,站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业环境,任何人不得擅作它用,否则后果自负!请在下载24小时内删除!为尊重作者版权,请购买原版作品,支持你喜欢的作者,谢谢!
7、本站资源大多存储在云盘,如发现链接失效 请联系我们 我们会第一时间更新。

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索