[워드프레스] 현재 사용자의 역할(회원 등급) 체크하기

Last Updated: 2023년 07월 16일 | | 댓글 남기기

워드프레스에서 특정 기능을 관리자 등급 또는 편집자(editor) 등급 이상만 수행하도록 제한해야 하는 경우가 발생할 수 있습니다. 이 경우 current_user_can 함수를 사용하여 현재 사용자 등급에 따라 제한할 수 있습니다.

현재 사용자의 사용자 역할(회원 등급) 체크

if( current_user_can( 'administrator' ) ){
} // 관리자(Administrator)인 경우에만

if( current_user_can( 'editor' ) ){
} // 에디터(Editor)인 경우에만

if( current_user_can( 'author' ) ){
} // 글 작성자(Author)인 경우에만

if( current_user_can( 'contributor' ) ){
} // 기여자(Contributor)인 경우에만

if( current_user_can( 'subscriber' ) ){
} // 구독자(Subscriber)인 경우에만

즉, 현재 사용자가 관리자인지 체크하여 특정 작업을 수행하도록 하려면

if( current_user_can( 'administrator' ) ){
// 수행할 작업
}

형식을 사용하면 됩니다. "관리자나 편집자"인 경우는 OR 연산자를 추가하면 됩니다.

if( current_user_can( 'administrator' ) || current_user_can( 'editor' ) ){
// 수행할 작업
}

여기에 사용된 current_user_can() 함수는 위와 같이 사용자 역할뿐만 아니라 특정 권한을 사용하여 체크할 수도 있습니다. 이 함수에 대한 자세한 내용은 WordPress Codex 페이지를 참고하시기 바랍니다.

그래서 현재 사용자가 관리자인지를 체크하는 경우 위에서 사용한 if( current_user_can( 'administrator' ) ) 대신 다음과 같은 코드를 사용할 수도 있습니다.

if (current_user_can( 'manage_options' )) {
// 수행할 작업
}

참고로 is_admin()은 현재 대시보드(알림판)에 있는지 여부를 체크하는 함수입니다.

if ( ! is_admin() ) {
     echo "현재 테마를 보고 있습니다";
} else {
     echo "현재 WordPress 관리 패널을 보고 있습니다";
}

현재 사용자가 로그인 사용자인지 체크

현재 사용자가 로그인 사용자인지 게스트인지를 체크하고자 하는 경우에는 is_user_logged_in() 함수를 사용하면 됩니다. 예를 들어,

if ( is_user_logged_in() ) {
	echo '안녕하세요? 회원님'; // 현재 사용자가 로그인한 경우
} else {
	echo '안녕하세요? 게스트님'; // 현재 사용자가 게스트인 경우
}

현재 사용자가 게스트인지만 체크하려면 어떻게 하면 될까요? 예, NOT 연산자를 추가하면 됩니다.

if (!is_user_logged_in()) {
// 수행할 작업
} //현재 사용자가 로그인 사용자가 아닌 경우(즉, 게스트인 경우)

워드프레스 테마 소스를 수정하다 보면 위와 같은 코드를 사용하는 경우가 많을 것입니다. 각 함수에 대한 자세한 내용은 각 함수에 링크된 WordPress Codex 페이지를 참고하여 응용하시기 바랍니다.

참고


댓글 남기기

Leave a Comment