此问题可能与以下问题重复:Only show metabox when date-value in other metabox is over?
大体上有两种方法可以实现这一目标。使用add_meta_boxes
钩子传递两个变量:post type和post。然后,仅当帖子有特定术语时才添加元框:
add_action( \'add_meta_boxes\', \'myplugin_add_my_custom_box\',10,2);
function myplugin_add_my_custom_box($post_type,$post){
//Check if post has \'car\' term from \'my-tax\' taxonomy. If not don\'t add metabox.
if( ! has_term( \'car\', \'my-tax\', $post ) )
return
add_meta_box(
\'myplugin_sectionid\',
__( \'My Post Section Title\', \'myplugin_textdomain\' ),
\'myplugin_metabox_callback\',
\'event\'
);
}
这种方法的好处是,它更稳定,不依赖javascript,并且比简单地隐藏metabox(第二种选择)更“脏”。使用javascript的好处是,您可以让它“活”起来(因此添加“car”一词会让它出现,删除它会让它消失)。
Note: 隐藏时,您需要清除任何值,以便隐藏的元框不会发布您或WordPress随后保存的任何数据。
此方法如下所述:Toggle admin metabox based upon chosen page template