禁用自动保存移除修订版本

闲来无事查询了一下数据库文件,发现这个博的数据库居然有点超乎意料的大,仔细看了下,原来大部分都是修订版本导致的。用Wordpress的估计都知道,在新建文章的时候,会有自动保存文章功能,而且每次修改文章的时候都会保留一个修订版本。这样的功能对于我来说是不需要的,于是,我决定彻底移除修订版本和禁用自动保存。

移除修订的历史版本这个比较简单,打开phpMyAdmin,运行SQL语句:DELETE FROM wp_posts WHERE post_type = "revision";就能清除掉历史版本了。

接下来是全面禁用自动保存和修订版本,这个比较复杂些。
先打开wp-config.php文件,添加
define('WP_POST_REVISIONS', false);//禁用历史修订版本
define('AUTOSAVE_INTERVAL', false);//自动保存时间设置为一天

再打开wp-admin/post.php 文件,搜索if ( 'attachment' !== $post_type ),将if ( ‘attachment’ !== $post_type )
wp_enqueue_script(‘autosave’);
注释掉,也就是变成
//if ( 'attachment' !== $post_type )
//wp_enqueue_script('autosave');

打开wp-admin/post-new.php文件,搜索:wp_enqueue_script( ‘autosave’ ); 将这一句注释掉。
打开 wp-admin\includes\post.php 文件,搜索:if ( $create_in_db ) { $post_id = wp_insert_post( array( ‘post_title’ => __( ‘Auto Draft’ ), ‘post_type’ => $post_type, ‘post_status’ => ‘auto-draft’ ) );
$post = get_post( $post_id );
替换为:
/* 注释两行代码*/
/*
$post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) );
$post = get_post( $post_id );
*/
/* 替换*/
global $current_user,$wpdb;
$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) ) {
$post_id = wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) );
$post = get_post( $post_id );
}
/* 替换结束 */

也许有些用了插件的会报错,自行检查插件问题即可。