禁用自动保存和版本修订
打开wp-config.php,在文件中插入以下内容:
define( 'AUTOSAVE_INTERVAL', 86400 );
define( 'WP_POST_REVISIONS', false );
禁用自动草稿(auto-draft)
自动草稿是个人感觉最鸡肋的功能,即使不新建文章,仅仅查看文章列表,都可能会弄一个草稿出来。
而且草稿还会占用一个文章ID,打乱文章ID的连续性。作为强迫症,无法接受。
方法一
禁用自动草稿需要修改 wp-admin/includes/post.php
在文件中查找 $create_in_db,在 if 分支内加入以下代码
global $wpdb;
$old_posts = $wpdb->get_col( "SELECT `ID` FROM `$wpdb->posts` WHERE `post_status` = 'auto-draft' OR `post_type` = 'revision'" );
for ( $i = 0; $i < count( $old_posts ); $i++) {
wp_delete_post( $old_posts[$i], true );
}
$wpdb->query( "ALTER TABLE `$wpdb->posts` AUTO_INCREMENT = 1" );
这段代码会在新建文章之前获取已存在的草稿,全部删除,并把ID重置,这样就能保持文章ID连续。
当然,这段代码也可以加到其他地方,比如放到 wp-admin/edit.php 的开头部分。
加上后,访问后台文章列表的时候,WordPress就会自动删除自动生成的草稿。
方法二
还是修改 wp-admin/includes/post.php,查找 $create_in_db。
把原来 if 分支中的代码剪切,放到以下代码的 if 里。
$post = $wpdb->get_row("SELECT * FROM `$wpdb->posts` WHERE `post_status` = 'auto-draft' AND `post_type` = '$post_type' AND `post_author` = $current_user->ID ORDER BY `ID` ASC LIMIT 1" );
if ( !$post ) {
// 把剪切的代码放到此处
}
这段代码会复用已经存在的草稿,只有不存在草稿的时候,才会尝试新建一个。