• 欢迎访问MACD实战投资网站,推荐使用最新版谷歌Chrome浏览器访问本网站,关注公众号 丁火甲木庚金 www.macd11.com/subscriptions

(总结)WordPress取消历史版本功能,保留自动保存的方法!

原创总结 丁火 15年前 (2010-06-08) 1574次浏览 4个评论

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及以上版本


macd11.com 和 丁火甲木庚金 公众号版权所有丨如未注明 , 均为原创丨转载请注明原文链接。
喜欢 (0)
[sp91@qq.com]
分享 (0)

您必须 登录 才能发表评论!

(4)个小伙伴在吐槽
  1. 太好了,可算解决我一个大问题,支持楼主
    pmpwhy2011-07-04 14:22
  2. 想给兄弟个好评,可是发布不了啊
    pmpwhy2011-07-04 14:25
  3. 大哥我是按你说的这样做的,但是出现自动草稿的链接,怎么办,的用插件吗
    pmpwhy2011-07-04 17:42