在WordPress管理面板的编辑POST屏幕上更新后,如何触发一个javascrip函数?

时间:2019-06-25 作者:Nouniz

我使用Wordpress 5.2.2,并开发了一个自定义主题。

EDIT : 在我的主题中,我添加了一个显示输入类型=“text”的元框。

函数中的代码。我的主题的php

if ( ! function_exists( \'vn_add_metabox\' ) ) {
    function vn_add_metabox () {
        add_meta_box(\'vn_youtube_single_metabox\', __(\'Youtube link\', WP_THEME_TEXTDOMAIN), \'show_vn_youtube_link_metabox\', array(\'post\', \'page\'), \'side\', \'low\');

    }
    add_action( \'add_meta_boxes\', \'vn_add_metabox\' );
}
此metabox调用显示\\u vn\\u youtube\\u link\\u显示输入文本和youtube视频iframe的metabox

if (!function_exists(\'show_vn_youtube_link_metabox\')) {
    function show_vn_youtube_link_metabox()
    {
        global $post;
        show_vn_input_text(\'vn_youtube_link\'); // <input type="text" name ="vn_youtube_link" value="VALUE_POST_META" />
        echo \'<br/>\'.vn_get_youtube_iframe(get_post_meta( $post->ID, \'vn_youtube_link\', true )); /*<iframe class="youtube-video-iframe" src="\'.VIDEO_LINK.\'?rel=0" width="790" height="496" allowtransparency="true" style="width:100%;" frameborder="0" allowFullScreen allow="encrypted-media" ></iframe> */
    }
}
I在action save\\u post上保存postmeta的值

if ( ! function_exists( \'vn_save_metabox_value\' ) ) {
    function vn_save_metabox_value ( $post_id, $post ) { // Enregistrement des données dans la base Wordpress.
        //évite de perdre des données à cause de l\'enregistrement automatique
        if ( ( defined( \'DOING_AUTOSAVE\' ) && DOING_AUTOSAVE ) || ( defined( \'DOING_AJAX\' ) && DOING_AJAX ) || isset( $_REQUEST[ \'bulk_edit\' ] ) ) {
            return $post->ID;
        }
        // Vérification des droits de l\'utilisateur.
        if ( ! current_user_can( \'edit_post\', $post->ID ) ) {
            return $post->ID;
        }

        vn_save_meta_box_content($post, \'vn_youtube_link\');

        return $post->ID;
    }

    add_action( \'save_post\', \'vn_save_metabox_value\', 1, 2 );
}
我使用一个函数来控制Posteta的值并保存它

if ( ! function_exists( \'vn_save_meta_box_content\' ) ) {
    function vn_save_meta_box_content ( $post, $meta_box_id, $input_name = \'\' ) {
        if ( ! isset( $input_name ) || empty( $input_name ) ) {
            $input_name = $meta_box_id;
        }

        if ( ! isset( $_POST[ $input_name ] ) || empty( $_POST[ $input_name ] ) ) {
            delete_post_meta( $post->ID, $meta_box_id );
        } else {
            if ( get_post_meta( $post->ID, $meta_box_id, true ) ) {
                update_post_meta( $post->ID, $meta_box_id, $_POST[ $input_name ] );
            } else {
                add_post_meta( $post->ID, $meta_box_id, $_POST[ $input_name ] );
            }
        }
    }
}
我想在WordPress完成AJAX之后执行JS函数(AJAX或其他)来更新post(XHR posthttp://localhost/wp_uimm/wp-json/wp/v2/pages/5?_locale=user) 在管理后期编辑屏幕上。此javascript函数将用于显示youtube视频的iframe或链接,而无需刷新编辑后屏幕。

当wp POST完成时,是否有回调来执行函数?

1 个回复
SO网友:Hady Shaltout

相关推荐

WordPress“wp-admin”重定向至用户帐户登录

我犯了一个很奇怪的错误。当我尝试登录到WordPress后端的mysite地址时。com/wp admin,要访问后端,我将自动被重定向到mysite。com/登录。php。。。就好像我正试图以普通用户或客户的身份登录到一个帐户。我是WordPress的新手,我似乎无法理解这一点。请帮忙。我有一个网站,允许一些用户在街区周围发布可用的工作,其他人通过它申请。非常感谢。