限制在wordpress中访问管理菜单页面

时间:2014-04-07 01:09:57

标签: wordpress

我正在尝试找到一种方法来限制某些管理员菜单页面对特定管理员的访问权限。 到目前为止,我已设法隐藏所有非主要管理员的网页,但如果他们输入该网页的网址,则会将其定向到该网页。

add_action( 'admin_init', 'my_remove_menu_pages');
function my_remove_menu_pages() {

global $user_ID;

if ( current_user_can( 'administrator' ) && $user_ID !== 1 ) {
remove_menu_page( 'admin.php?page=settings' );
remove_menu_page( 'plugins.php' );
    //remove_menu_page( 'authorhreview' );
 }

}

我一直在做很多阅读,但我似乎无法想出一个解决方案。 任何帮助都会很棒。谢谢。

1 个答案:

答案 0 :(得分:0)

不要将角色名称传递给current_user_can(),因为这不能保证正常工作。

请参阅:https://core.trac.wordpress.org/ticket/22624

function appthemes_check_user_role( $role, $user_id = null ) {
  if ( is_numeric( $user_id ) )
    $user = get_userdata( $user_id );
  else
    $user = wp_get_current_user();

  if ( empty( $user ) )
    return false;

  return in_array( $role, (array) $user->roles );  
}

//example use for the current user
   if ( appthemes_check_user_role( 'customer' )  
      _e( "You've got access dude!", 'appthemes' );  
   else
      _e( "Sorry man, no luck.", 'appthemes' );  

//example use for a specific user
$user_id = 23;
  if ( appthemes_check_user_role( 'customer', $user_id )
     _e( "You've got access dude!", 'appthemes' );
  else
     _e( "Sorry man, no luck.", 'appthemes' );