我正在使用子主题,希望更改父主题中定义的一个元框。元框仅用于“页面”。我尝试在函数中使用remove\\u meta\\u框。php,但它没有效果:
function remove_parents_box() {
remove_meta_box( \'id-of-meta-box\' , \'page\' , \'normal\' );
}
add_action( \'admin_menu\' , \'remove_parents_box\' );
有什么想法吗?
Addition to question:我发现父主题使用:
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 );
然后创建我自己的元框?
最合适的回答,由SO网友:kaiser 整理而成
注意:这是my和@toscho答案之间的合并版本
解释(由@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 );