我使用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 post
http://localhost/wp_uimm/wp-json/wp/v2/pages/5?_locale=user) 在管理后期编辑屏幕上。此javascript函数将用于显示youtube视频的iframe或链接,而无需刷新编辑后屏幕。
当wp POST完成时,是否有回调来执行函数?