我明白了!Buuuuut我必须编辑2个核心文件,是的!2个核心文件:(
我知道这不是一个很酷的插件黑客,但可能是一个很酷的补丁,WP,Im使用3.3.1版本。
这是我的小技巧/贡献:
wp-admin/post-new.php
1评论:
//wp_enqueue_script(\'autosave\');
2更改:
$post = get_default_post_to_edit( $post_type, true );
$post_ID = $post->ID;
签署人:
$post = array();
$post_ID = 0;
wp-admin/post.php
1更改:
if ( isset( $_GET[\'post\'] ) )
$post_id = $post_ID = (int) $_GET[\'post\'];
elseif ( isset( $_POST[\'post_ID\'] ) )
$post_id = $post_ID = (int) $_POST[\'post_ID\'];
else
$post_id = $post_ID = 0;
签署人:
if ( isset( $_GET[\'post\'] ) ) {
$post_id = $post_ID = (int) $_GET[\'post\'];
} elseif ( isset( $_POST[\'post_ID\'] ) ) {
if ( empty($_POST[\'post_ID\']) ) {
$post_type = wp_kses($_POST[\'post_type\']);
if( !post_type_exists($post_type) ) {
$post_type = \'post\';
}
check_admin_referer(\'update-\' . $post_type . \'_\' . (int) $_POST[\'post_ID\']);
global $user_ID;
$defaults = array(
\'post_status\' => \'draft\',
\'post_type\' => $post_type,
\'post_author\' => (int) $user_ID,
);
$postarr = wp_parse_args( $_POST, $defaults );
$post_ID = wp_insert_post($postarr);
$post_id = (int) $post_ID;
redirect_post($post_id);
exit;
} else {
$post_id = $post_ID = (int) $_POST[\'post_ID\'];
}
} else {
$post_id = $post_ID = 0;
}
我正在使用JQuery隐藏:添加媒体内容。在posts表中只创建一个唯一的ID条目(而不是一堆无用的自动草稿条目),用户手动保存当前帖子后,媒体内容将可见。
Rare behavior:
When a user logins for the first time and is redirected to Dashboard, WP creates an Auto Draft entry in posts table, hmmm, crazy! Somebody knows why it works like that?
一个更好的解决方案:也许根本不改变核心文件?这将是一个伟大的时刻!例如,在设置中有一个复选框,可以选中或取消选中是否需要“自动保存”功能(get\\u选项)。其他人想应用补丁吗?
提前谢谢。