LinuxEye - Linux系统教程

LinuxEye - Linux系统教程

当前位置: 主页 > 建站 >

禁用WordPress 3.5自动草稿存档

时间:2013-01-12 13:20来源:eit0571 编辑:eit0571 点击:
做为一个id控,我一直喜欢用数字id做为日志文件名,而WordPress自从2.6版本之后就出现了几个很令人讨厌的功能:Post Revisions和Autosave,在默认的情况下,日志的ID将不再连续,使用ID做为
做为一个id控,我一直喜欢用数字id做为日志文件名,而WordPress自从2.6版本之后就出现了几个很令人讨厌的功能:Post Revisions和Autosave,在默认的情况下,日志的ID将不再连续,使用ID做为Permalink结构的用户将会看到一个地址越来越混乱的 WordPress,很烦,后来我通过一个插件很完美的解决了这个日志ID不连续的 问题,并一直用到了3.0都没问题,升级到3.5之后,自动草稿又出来了,但是该插件依旧在工作,通过跟踪发现,只要新建一篇日志,即使不写内 容,数据库中也会自动保存一篇草稿,这是以前版本的WordPress所没有的现象,也是disable revisions and autosave插件失效的原因。

既然已经升级到了WordPress 3.5,也不好降级,只好再想办法解决Wordpress自动保存草稿的问题,经过搜索,找到了一个不是很好的禁用自动保存草稿的方法。

解决WorPress 3.5自动草稿的方法是:依旧启用原先的disable revisions and autosave插件,然后编辑wp-admin/includes/post.php文件,在if ( $create_in_db ) {语句之前加入一行$create_in_db = false; 语句,经过实际测试,增加了这一行之后,新建日志,数据库就不会出现一篇自动存档的草稿了。

但是这种修改WordPress源代码的方法是很不好的,这会导致以后每次WordPress升级,都需要维护修改一次,工作量会越来越大,不如用插件的方式解决,可惜目前实在找不到如何使用插件来解决这个问题,要是WordPress下一个版本能官方解决就好了。

更新:上述禁用自动草稿(Auto-Draft)的方法仅仅针对Wordpress 3.5以前的版本,对Wordpress 3.1以后的版本是无效的,添加后保存文章时提示“没有修改权限”。Wordpress 3.5以后的版本修改方法是:

依旧编辑wp-admin/includes/post.php文件,找到下面两行:
$post_id = wp_insert_post( array( ‘post_title’ => __( ‘Auto Draft’ ), ‘post_type’ => $post_type, ‘post_status’ => ‘auto-draft’ ) );
$post = get_post( $post_id );

将其替换为如下几行即可:
$post_auto_draft = $wpdb->get_row( "SELECT * FROM $wpdb->posts WHERE post_type = '$post_type' AND post_status = 'auto-draft' LIMIT 1" );
if ( $post_auto_draft ) {
    $post = $post_auto_draft;
} else {
    $post = get_post( wp_insert_post( array( 'post_title' => __( 'Auto Draft' ), 'post_type' => $post_type, 'post_status' => 'auto-draft' ) ) );
}

总结:WordPress的自动保存(Auto-Save)、历史版本(Post Revisions)和自动草稿(Auto-Draft)的功能真是麻烦,在数据库中产生大量垃圾数据,并且自动草稿(Auto-Draft)目前只能通 过修改源代码来实现,希望WordPress官方能够提供一种选项,让用户可以选择是否启用自动草稿(Auto-Draft)功能。

转载请保留固定链接: https://linuxeye.com/jianzhan/1160.html

------分隔线----------------------------
标签:WordPress
栏目列表
推荐内容