Как удалить пользовательское мета-поле одним нажатием кнопки? - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь удалить пользовательский метабокс, который я создал для своего плагина, используя код PHP. Он должен быть удален из всех постов одним нажатием кнопки. Вот мой код:

<?php
if(isset($_REQUEST['submit_btn']))
{   
    function remove_custom_metabox()
    {
        remove_meta_box( 'my-meta-box-id' , 'post' , 'normal' );
    }
    add_action( 'add_meta_boxes', 'remove_custom_metabox');
}
?>

Почему это не работает? И есть ли способ сделать это для многопостового пользовательского метабокса? Спасибо!

РЕДАКТИРОВАТЬ 1: Просто чтобы получить более четкое представление о том, что я делаю, вот как я создаю пользовательский мета-блок в основном файле плагина:

function cd_meta_box_add()
{
        add_meta_box(
                'my-meta-box-id', //id
                'Contributors', //title
                'cd_meta_box_cb', //callback
                'post', //post type
                'normal', //position
                'high' //priority
                );
}
add_action('add_meta_boxes', 'cd_meta_box_add');

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Для удаления пользовательского метабокса используйте ловушку действия admin_menu или do_meta_boxes

/**
 * Remove Custom Fields meta box
 */
function wpdocs_remove_post_custom_fields() {
    remove_meta_box( 'postcustom' , 'post' , 'normal' ); 
}
add_action( 'admin_menu' , 'wpdocs_remove_post_custom_fields' );
add_action( 'do_meta_boxes', 'wpdocs_remove_post_custom_fields' );

Для получения дополнительной помощи см. Эту ссылку: нажмите здесь

0 голосов
/ 07 сентября 2018

Согласно документации, вы должны использовать ловушку admin_menu

...