wordpress的每篇文章都会有一个独一无二的id编号,写了一段时间博客以后,你会忽然发现,明明并没有写几篇文章,文章的id号却已经上升到了三位数。可能wordpress设计之初,就压根没考虑过强迫症的感受,草稿需要占用id,文章的修订版本需要占用id,即使是上传一张图片一份多媒体文件,你也得消耗一个id,一段时间下来,文章的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' );
通过将上述代码添加进functions.php文件,我们可以关闭一些占用id的功能,比如草稿,又比如修订版本,对功能做一些减法势必会带来一些不便,关闭这几个功能之后,需要记得编辑文章的时候,及时手动保存,以避免编辑半天的文章因意外断电什么的而意外丢失的情况。
避不开的图片使用
图片和多媒体占用id是一个很头疼的事情,在wordpress中插入一张图片非常方便,而且插入图片之后,我们还可以在媒体库中对齐进行管理,个人编写文章的时候,习惯于直接在文章中上传,这种方式不可避免的会占用id。确实不想让图片或多媒体占用文章id的,可以考虑利用第三方工具比如ftp工具来上传多媒体文件,然后直接以地址的方式插入到文章当中,这样图片不会被媒体库所收录,也不会再占用wordpress的资源了。但这种方式让插入图片这一步骤变得较为繁琐。id强迫症与图片编辑的便利之间,笔者最终倒向了便利性。