正在删除添加到父主题中的自定义元框

时间:2012-07-25 作者:Nona Man

我正在使用子主题,希望更改父主题中定义的一个元框。元框仅用于“页面”。我尝试在函数中使用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 );
然后创建我自己的元框?

1 个回复
最合适的回答,由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 );

结束

相关推荐

如何在Pluggable.php中添加自定义函数

我正在开发一个WP插件,我想向pluggable添加一个自定义函数。php(位于/wp includes)。我正在从admin调用该函数。php(位于/wp admin)考虑一下功能auth_redirect 这是从admin调用的。php。auth_redirect 是在pluggable中定义的函数。php检查登录的用户,否则它会将他们重定向到登录页面。同样,我有自己的自定义函数。那么,是否有任何特定的钩子或过滤器,我必须使用它们来将我的函数附加到可插拔的。php。目前,我正在使用fwrite() 将