我是PHP的新手。我试图隐藏某些用户(编辑)的某些仪表板导航项。我已经将这个添加到函数中,这些函数已经为所有用户隐藏了它:
<?php
function remove_menus(){
remove_menu_page( 'edit-comments.php' ); //Comments
}
add_action( 'admin_menu', 'remove_menus' );
?>
它说here您可以使用'current_user_can'来查明某些用户,但我不确定如何将两者结合使用。 到目前为止,我已经尝试过:
function remove_menus(){
current_user_can(
remove_menu_page( 'editor', 'edit-comments.php' ); //Comments
) );
}
和
function remove_menus(){
current_user_can( array(
remove_menu_page( 'editor', 'edit-comments.php' ); //Comments
) );
}
..但是从查看其他函数来看,它们似乎在括号中使用=&gt; inbetween所以我假设我以错误的方式使用这个函数。
任何帮助将不胜感激,谢谢。
答案 0 :(得分:0)
第一个答案,非常简单,使用逻辑&#34; OR&#34;操作者:
<?php
function remove_menus(){
if( current_user_can('editor') || current_user_can('administrator') ) { // stuff here for admins or editors
remove_menu_page( 'edit-comments.php' ); //stuff here for editor and administrator
}
} ?>
如果要检查两个以上的角色,可以检查当前用户的角色是否在角色数组中,如:
<?php
function remove_menus(){
$user = wp_get_current_user();
$allowed_roles = array('editor', 'administrator', 'author');
if( array_intersect($allowed_roles, $user->roles ) ) {
remove_menu_page( 'edit-comments.php' ); //stuff here for allowed roles
}
} ?>
但是,current_user_can不仅可以用于用户角色名称,还可以用于功能。因此,一旦编辑和管理员都可以编辑页面,您的生活就可以更轻松地检查这些功能:
<?php
function remove_menus(){
if( current_user_can('edit_others_pages') ) {
remove_menu_page( 'edit-comments.php' );// stuff here for user roles that can edit pages: editors and administrators
}
}
?>
有关功能的更多信息,请查看here。