我遇到了一个试图让remove_meta_box()工作的问题
/** remove metabox for catchkathmandu options
*/
function vpm_remove_meta_box() {
remove_meta_box( 'catchkathmandu-options', 'post', 'normal' );
remove_meta_box( 'authordiv' , 'page' , 'normal' ); //removes author
}
add_action( 'add_meta_boxes', 'vpm_remove_meta_box' );
关键是我不希望贡献者和作者编辑网站设计,所以我想删除catchkathmandu-options。代码显然没有反映条件,这个函数的codex提供了解决方案,但是这个代码在besic步骤,仍然无法工作 - 我切换回Twenty Sixteen主题并放入authordiv部分只是为了测试。但仍然没有骰子。
它被添加到子主题functions.php
我走错了路吗?我完全看错了吗?
任何帮助表示赞赏!
答案 0 :(得分:1)
我认为您使用的是一个名为" Catch katHmandu"的主题,并且您想删除除管理员以外的所有人的元框。
以下是删除元框的用法:
remove_meta_box( $id, $page, $context );
参考编号:https://codex.wordpress.org/Function_Reference/remove_meta_box
正如您可以在codex上阅读的那样,$ id是您要删除的div的当前ID。我们假设您要删除"标签框",如果查找其容器ID,您会发现:
<div id="tagsdiv-post_tag" class="postbox">
...
</div>
如果你想删除标签元框,你的代码将如下所示:
if (!is_admin()) :
function my_remove_meta_boxes() {
remove_meta_box('tagsdiv-post_tag', 'page', 'normal');
}
add_action( 'admin_menu', 'my_remove_meta_boxes' );
endif;
查找要删除的元框的ID,并使用您的ID重新设置上面代码中的&#34; tagdiv-post_tag&#34; 。
如果您喜欢我的答案,请单击顶部箭头,作为编码器,这对我来说意味着很多。谢谢!
修改强>
正如@AndrewSeabrook所说,尝试在你的函数中使用admin_menu
hook而不是add_meta_boxes
。