解决WordPress文章ID连续的方法

一、禁用文章修订版

如果你的站点大多数都是文章,页面很少(PS:所占用的 ID 可忽略),并且站点所使用的图片/附件都不是通过 WordPress 后台上传的(PS:通过 FTP 直接上传到后台指定文件夹,或在其他存储空间直接上传,比如七牛),那么建议采用本方法,首先禁用 WordPress 的修订版本,并修改自动保存的时间。(PS:据说直接取消自动保存功能好像不太起作用,所以建议直接修改自动保存时间比较好)

打开 WordPress 网站根目录下的 wp-config.php 文件,在 define(‘WP_DEBUG’, false); 之后添加以下代码:

//自动保存10小时一次

define('AUTOSAVE_INTERVAL', 36000);

//禁用修订版本

define('WP_POST_REVISIONS',false);

二、重新排列不连续的文章ID

可在当前主题的functions.php中加入以下代码,这样如果你只是单纯发文章,不发页面、不添加菜单、不上传媒体的情况,基本上此后的文章ID是连续的,而且不改变之前已经发布的文章ID,不影响SEO。

// 禁用修订版本
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;
}
// 禁用自动保存,所以编辑长文章前请注意手动保存。
add_action( 'admin_print_scripts', create_function( '$a', "wp_deregister_script('autosave');" ) );
// WordPress 3.8测试有效
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' );

 

人已赞赏
WordPress教程

WordPress给网站添加一个临时维护功能

2020-8-30 0:35:08

WordPress教程

WordPress文章随机显示缩略图的实现方法

2020-8-31 22:20:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
  • 10 用户总数
  • 1202 文章总数
  • 10318 浏览总数
  • 0 今日发布
  • 331 稳定运行
立即加入

加入VIP,快速免费获取优质资源!