我使用Wordpress 5.2.2并开发了一个自定义主题。
EDIT :在我的主题上,我添加了一个显示输入type="text“的metabox。
主题的functions.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调用show_vn_youtube_link_metabox,它显示输入文本和youtube视频iframe
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上保存后置元值
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的值并保存它。
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完成时,是否有执行函数的回调?
发布于 2019-11-11 12:19:50
https://wordpress.stackexchange.com/questions/341439
复制相似问题