私は子テーマを使用しています、そして親テーマで定義されたメタボックスの1つを変更したいです。メタボックスは「ページ」専用です。私のfunctions.phpでremove_meta_boxを使ってみましたが、効果はありません:
function remove_parents_box() {
remove_meta_box( 'id-of-meta-box' , 'page' , 'normal' );
}
add_action( 'admin_menu' , 'remove_parents_box' );
何か案は?
質問への追加: 私は親テーマが使用していることがわかりました:
add_action( 'admin_menu', 'lala_create_meta_box_page' );
add_action( 'save_post', 'lala_save_meta_data_page' );
このメタボックスを起動します。自分のコードでメタボックスを作成したいのですが、実際には次のようにして削除する必要があります。
remove_action( 'admin_menu', 'lala_create_meta_box_page',999 );
そして私自身のメタボックスを作成しますか?
注:これは私の回答と@toschoの回答をマージしたものです。
アクションフックとしてadd_meta_boxes_page
を使用してください。
フックはwp-admin/edit-form-advanced.php
にあり、次のように表示されます。
do_action('add_meta_boxes_' . $post_type, $post);
以下のアクションを試してください。これも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 );
メタボックスを追加するアクションが登録されている正確な位置がわかっている場合は、これを削除することもできます。
function wpse59607_remove_meta_box()
{
remove_action( 'admin_menu', 'lala_create_meta_box_page' );
}
add_action( '_admin_menu', 'wpse59607_remove_meta_box', 999 );