J'utilise un thème enfant et souhaite modifier l'une des boîtes à méta définies dans le thème parent. La méta-boîte est pour 'pages' seulement. J'ai essayé d'utiliser la remove_meta_box dans mon functions.php, mais cela n'a aucun effet:
function remove_parents_box() {
remove_meta_box( 'id-of-meta-box' , 'page' , 'normal' );
}
add_action( 'admin_menu' , 'remove_parents_box' );
Des idées?
Ajout à la question: J'ai constaté que le thème parent utilise:
add_action( 'admin_menu', 'lala_create_meta_box_page' );
add_action( 'save_post', 'lala_save_meta_data_page' );
Pour initier cette meta box. Si je souhaite créer la méta-boîte avec mon propre code, devrais-je le supprimer en procédant de la manière suivante:
remove_action( 'admin_menu', 'lala_create_meta_box_page',999 );
Et puis créer ma propre méta-boîte?
Remarque: Ceci est la version fusionnée entre mes réponses et @toscho.
Utilisez add_meta_boxes_page
comme crochet d’action.
Vous pouvez trouver le hook dans wp-admin/edit-form-advanced.php
et il s’affiche sous la forme:
do_action('add_meta_boxes_' . $post_type, $post);
Essayez l'action suivante, qui se trouve également dans register_post_type()
.
function wpse59607_remove_meta_box( $callback )
{
remove_meta_box( 'id-of-meta-box' , 'page' , 'normal' );
}
add_action( 'add_meta_boxes_page', 'wpse59607_remove_meta_box', 999 );
Si vous connaissez la position exacte où l'action, qui ajoute la méta-boîte est enregistrée, vous pouvez également simplement supprimer celle-ci.
function wpse59607_remove_meta_box()
{
remove_action( 'admin_menu', 'lala_create_meta_box_page' );
}
add_action( '_admin_menu', 'wpse59607_remove_meta_box', 999 );