自定义保存按钮显示‘您确定要...’对话框

时间:2014-11-26 作者:john23klipp

我正在寻找一种方法,用一个简单的保存按钮来代替submitdiv元框(发布框)。通过查看Core,我看到有一个简单的函数返回提交按钮:get\\u submit\\u button()。

我可以替换publish metabox,只显示一个简单的“save”(保存)按钮,并使用wp\\u insert\\u post\\u data()挂钩确保帖子的状态正确。然而,当我编辑帖子并尝试保存时,“你确定要…”对话框出现。我猜某种暂时性的东西不见了,但我不知道在哪里。

请注意,我有not 只是想把东西和css. 这是不安全的,坦率地说(在我看来)是不可靠的。

以下是我目前掌握的情况:

/* Remove the default publish meta box
 *
 */
add_action( \'admin_head\',  \'cs_admin_meta_boxes\' );
function cs_admin_meta_boxes(){
    remove_meta_box( \'submitdiv\',  \'cpt_name\', \'side\');
}

/* Add meta \'save\' meta box
 *
 */
add_action( \'add_meta_boxes\', \'cs_meta_box_add\' );
function cs_meta_box_add(){
    add_meta_box( \'cs-save\', \'Save\', \'cs_meta_box_save\', \'cpt_name\', \'side\', \'high\'       );
}


/* \'Save\' meta box content
 *
 */
function cs_meta_box_save(){
    echo get_submit_button( $text = \'Save\', $type = \'primary\', $name = \'submit\', $wrap = true, $other_attributes = NULL );

}


/**
 * Sets the post status to published
 */
add_filter( \'wp_insert_post_data\', \'cs_force_published\' );
function cs_force_published( $post ) {

        if( in_array( $post[ \'post_type\' ], array( \'cpt_name\') ) ) {
            $post[\'post_status\'] = \'publish\';
        }
        return $post;

}

1 个回复
SO网友:john23klipp

SOLVED: 找到了解决方案。诀窍是禁用自动保存。但请注意,只能在非ajax存储上执行此操作。

add_action( \'admin_enqueue_scripts\', \'my_admin_enqueue_scripts\' );
function my_admin_enqueue_scripts() {
       if ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) return false; // don\'t disable if it is an auto-autosave
    if ( \'POST_TYPE\' == get_post_type() ){

       wp_dequeue_script( \'autosave\' );    
    }
}
希望这对别人有帮助。

结束

相关推荐

PUBLISH_POST挂钩不适用于计划的帖子

我对wp在推特上发布一条推特,链接到我通过电子邮件发送到wordpress的一篇设置为“待定”的帖子有点不太满意。组织网站。电子邮件中有一个页脚,其中包括我的手机号码。我决定创建自己的插件。add_action(\'publish_post\', \'tcr_tweet\'); /* the function */ function tcr_tweet($postID) { if( ( $_POST[\'post_status\'] == \'p