解决关于wordpress的ID连续问题
一开始建站的时候还不太注意到id的问题,等注意到的时候,id已经是到了100多了。
然后现在每次都是在纠结升级的问题,是升级呢还是不升级呢。
升级因为修改过代码,改起来好麻烦,而且还要对比下我改过什么东西。
现在找到了一个相对来说比较好的方法来解决这个问题
这个方法就是利用系统的钩子来实现。
在主题的模板函数function.php中加入以下内容
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' );
首先在进入新建文章、上传媒体文件和自定义菜单的前面执行keep_id_continuous 这个函数,按照降序查询当前非自动草稿、修订版本的id,然后删除自动草稿、修订版本,将自增id改为刚得到的id+1
保存后看看效果,进入新建文章,果然只有一个自动草稿,再进来也是只有一个自动草稿。
然后进入外观–菜单 中,发现刚加的自动草稿已经被删除了,证明我们修改成功了。
现在我可以安心的升级了,不再受到wordpress 升级所带来的麻烦了。~~
【声明】本文 解决关于wordpress的ID连续问题 为柠之漠然原创文章,转载请注明出自
枫之落叶
并保留本文有效链接:https://blog.shiniv.com/2013/11/solve-the-id-not-continuous-on-the-wordpress/ , 转载请保留本声明!
如果能加上原始出处会更好