Remove Ability for Other Users to View Administrator in User List?

(Moderator’s note: Original title was “Remove Admin from User Menu”)

I have created a client administrator role which is essentially an Editor with ability to add/remove users. The article “Editor can create any new user except administrator” was excellent in helping keep my new client admin role from editing or creating a True admin user.

However what would be ideal is to hide administrators from client admins when they are viewing users. I want them to “believe” that they are the admin of their site but I do not want them to be able to even view my role/user–essentially hiding the “administrator” role from them when they are in the “Users” panel.

4

Hi @Carlos:

Try adding the following to your theme’s functions.php file, or in a .php file within a plugin that you might be writing (which works for WordPress 3.1.x):

add_action('pre_user_query','yoursite_pre_user_query');
function yoursite_pre_user_query($user_search) {
  $user = wp_get_current_user();
  if ($user->ID!=1) { // Is not administrator, remove administrator
    global $wpdb;
    $user_search->query_where = str_replace('WHERE 1=1',
      "WHERE 1=1 AND {$wpdb->users}.ID<>1",$user_search->query_where);
  }
}

If you have WordPress 3.0.x try this instead (since WordPress didn’t add the 'pre_user_query' hook until 3.1):

add_action('pre_user_search','yoursite_pre_user_search');
function yoursite_pre_user_search($user_search) {
  $user = wp_get_current_user();
  if ($user->ID!=1) { // Is not administrator, remove administrator
    global $wpdb;
    $user_search->query_where = str_replace('WHERE 1=1',
      "WHERE 1=1 AND {$wpdb->users}.ID<>1",$user_search->query_where);
  }
}

Leave a Comment