본문으로 바로가기
  1. Home
  2. 워드프레스
  3. 워드프레스 사용자 역할 체크하기 (자체 정리용)

워드프레스 사용자 역할 체크하기 (자체 정리용)

· 댓글 4

현재 사용자가 특정 역할(Role)인지를 체크하고 싶은 경우 다음 함수를 테마의 함수 파일에 추가하면 된다.

function check_user_role($roles, $user_id = null) {
 if ($user_id) $user = get_userdata($user_id);
 else $user = wp_get_current_user();
 if (empty($user)) return false;
 foreach ($user->roles as $role) {
  if (in_array($role, $roles)) {
   return true;
  }
 }
 return false;
}

그러면 다음과 같이 사용할 수 있다.

if (check_user_role(array('author','editor','custom_role'))) {
 // 수행할 작업
}

역할의 권한을 사용하여 사용자 체크하기:

현재 사용자가 관리자 권한을 가진 경우:

if ( current_user_can( 'manage_options' ) ) {
}

현재 사용자가 편집자 이상(편집자, 관리자)인 경우:

if ( current_user_can( 'delete_others_posts' ) ) {
}

현재 사용자가 글쓴이 이상(글쓴이, 편집자, 관리자)인 경우:

if ( current_user_can( 'publish_posts' ) ) {
}

현재 사용자가 기여자(Contributor) 이상(기여자, 글쓴이, 편집자, 관리자)인 경우:

if ( current_user_can( 'delete_posts' ) ) {
}

current_user_can('administrator')과 같이 current_user_can 함수를 사용할 수 있지만, 권장되지 않음.

대신 다음과 같은 형식으로 사용 가능:

$user = wp_get_current_user();
$allowed_roles = array('administrator','editor');
if(array_intersect($allowed_roles, $user->roles)){
    //user have $allowed_roles
}

워드프레스 역할(Role)과 권한:

참고:

💬 댓글 4
logo

워프에서는 역할 권한을 사용하여 체크할 수 있군요.!

logo

역할에 따라 정교하게 제어해야 하는 경우에 유용하게 이용할 수 있습니다.

logo

이미지가 어제 제가 픽사에서 가져온거랑 똑 같네요..ㅎㅎ
며칠 뒤 발행할 예정입니다.^^

logo

저작권 문제 때문에 무료 이미지를 주로 사용하고 있습니다. 블로그를 돌아다니다 보면 동일한 무료 이미지가 사용되는 경우를 간혹 목격합니다.ㅎㅎ

이름을 저장합니다.

이모티콘창 닫기
울음
안녕
감사해요
당황
피폐

이모티콘을 클릭하면 댓글창에 입력됩니다.

프리미엄 테마 그래픽 동영상 템플릿 무료 다운로드