我认为赫克托的答案在这种情况下最合适,因为他创建了一个特殊的用户角色,您可以用他的代码将其作为目标。
对于其他没有自定义用户角色但希望隐藏某些元数据库的用户,可以像我这样做,以确保编辑器级别以下的人都无法访问某些特定元数据库:
// Removes certain Metaboxes
function remove_post_metaboxes() {
if ( !current_user_can( \'edit_others_posts\' ) ) { // Enter your desired Capability to target specific Roles
remove_meta_box( \'formatdiv\',\'post\',\'side\' ); // Format Metabox
remove_meta_box( \'categorydiv\',\'post\',\'side\' ); // Category Metabox
remove_meta_box( \'adv-tagsdiv\',\'post\',\'side\' ); // Tags (Simple Tags) Metabox
remove_meta_box( \'st-clicks-tags\',\'post\',\'advanced\' ); // Tags (Simple Tags) Metabox
remove_meta_box( \'edit-flow-notifications\',\'post\',\'advanced\' ); // EditFlow UserGroups Notifications Metabox
}
}
add_action( \'do_meta_boxes\', \'remove_post_metaboxes\');
因此,您可以决定以哪种功能为目标(因为WP更喜欢使用当前的用户,而不是特定的角色),然后,您只需要知道元盒的名称(在看到要删除/隐藏的元盒的帖子中使用类似于Inspect元素的内容来查找其名称-上面的示例是我为所有非编辑器删除的元盒),然后再知道是否要将其从帖子或页面中删除,以及它通常所在的位置。将此添加到子主题的函数中。php文件。
更多信息请参见:https://developer.wordpress.org/reference/functions/remove_meta_box/