WordPress有历史版本功能,很好很强大,但是我用不到,浪费数据库空间,降低操作效率,于是在网上搜索了一下,但好多文章都是在讲如何取消WordPress历史版本功能,取消的同时把自动保存也个弄没了。自动保存功能我是需要的,没有自动保存如何在线写文章呢?这里总结了一个方法,可以一举两得,取消历史版本功能的同时还能保留文章自动保存功能。
1. 在 wp-config.php 中添加以下代码:
define(‘WP_POST_REVISIONS’, false);
2. 在wp- includes/default-filters.php中,找到并注释掉下面这一行:
#add_action( ‘pre_post_update’, ‘wp_save_post_revision’ );
3. 在wp-admin/includes/post.php文件中,找到 wp_create_post_autosave函数。
修改如下:
return _wp_put_post_revision( $_POST, true );
修改成:
return edit_post();
整个函数如下:
function wp_create_post_autosave( $post_id ) {
$translated = _wp_translate_postdata( true );
if ( is_wp_error( $translated ) )
return $translated;
// Only store one autosave. If there is already an autosave, overwrite it.
if ( $old_autosave = wp_get_post_autosave( $post_id ) ) {
$new_autosave = _wp_post_revision_fields( $_POST, true );
$new_autosave[‘ID’] = $old_autosave->ID;
$current_user = wp_get_current_user();
$new_autosave[‘post_author’] = $current_user->ID;
return wp_update_post( $new_autosave );
}
// _wp_put_post_revision() expects unescaped.
$_POST = stripslashes_deep($_POST);
// Otherwise create the new autosave as a special post revision
#return _wp_put_post_revision( $_POST, true );
return edit_post();
}
除了用修改源代码的方法外,还可以用插件的形式,但使用插件太多,会影响运行的效率。建议用修改代码的方法!
注:此方法可用于WP2.6及以上版本