首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在wordpress管理面板的编辑post屏幕上发布更新后,我如何触发javascript函数?

在wordpress管理面板的编辑post屏幕上发布更新后,我如何触发javascript函数?
EN

WordPress Development用户
提问于 2019-06-25 14:26:36
回答 1查看 1.2K关注 0票数 0

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

EDIT :在我的主题上,我添加了一个显示输入type="text“的metabox。

主题的functions.php代码

代码语言:javascript
复制
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调用show_vn_youtube_link_metabox,它显示输入文本和youtube视频iframe

代码语言:javascript
复制
if (!function_exists('show_vn_youtube_link_metabox')) {
    function show_vn_youtube_link_metabox()
    {
        global $post;
        show_vn_input_text('vn_youtube_link'); // 
        echo '
'.vn_get_youtube_iframe(get_post_meta( $post->ID, 'vn_youtube_link', true )); /* */
    }
}

我在操作save_post上保存后置元值

代码语言:javascript
复制
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 );
}

我使用一个函数来控制postmeta的值并保存它。

代码语言:javascript
复制
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编辑屏幕上更新POST (XHR http://localhost/wp_uimm//wp/v2/page/5?_locale=user)。这个javascript函数将用于显示youtube视频的iframe或链接,而无需刷新post编辑屏幕。

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

EN

回答 1

WordPress Development用户

发布于 2019-11-11 12:19:50

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/341439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档