사용자 역할별 메뉴 표시하는 방법을 알아보자.
여기서 역할별 메뉴란 사용자 역할 : 구독자, 기여자, 글쓴이, 편집자, 관리자 와 회원에게 정해줄 수 있는 역할을 의미한다.
이 역할은 회원 등급과 비슷하게 사용할 수 있다. 그러나 역할마다 권한이 다 다르다.
역할 여러개 지정해주려면 코드가 길어져서 별로라 개인적으로 사용자 권한별 메뉴 보이게 하는 방법을 참고하여 진행하는게 나은듯하다.
역할별 메뉴 표시
역할별 메뉴 표시할 때에는 메뉴 보여주고자하는 위치, header.php나 footer.php 등에 넣으면된다.
header.php
header.php에 예시를 참고하여 코드 넣고 확인해보자.
<div class="menu-item"><?php wp_loginout(); ?></div> <?php $current_user = wp_get_current_user(); if( is_user_logged_in() ) { echo '<div class="menu-item"><a href="' . esc_url( home_url( "/" ) ) . 'author/' . $current_user->user_login . '">프로필</a></div>'; if( current_user_can( 'administrator' ) ) { echo '<div class="menu-item"><a href="' . get_admin_url() . '">관리자</a></div>'; } } else { echo '<div class="menu-item"><a href="' . esc_url( home_url( "/" ) ) . 'wp-login.php?action=register">회원가입</a></div>'; } ?>
사용된 코드 설명
wp_loginout();
:
로그인 상태에선 로그아웃 링크, 로그아웃 상태에선 로그인 링크를 보여주는 함수.
wp_register();
:
로그인 상태에선 관리자 링크, 로그아웃 상태에선 회원가입을 보여주는 함수.
wp_get_current_user();
:
현재 로그인한 사용자의 정보를 가져오는 함수.
if( is_user_logged_in() )
:
로그인이 되어있어야 조건에 부합하는 코드.
if ( ! is_user_logged_in() )
:
위의 코드와 비슷하지만 !로 완전 반대의 의미를 갖는다. 로그인이 안되어있어야 조건에 부합하는 코드.
esc_url( home_url( “/” ) )
:
워드프레스 홈 URL 불러오는 코드.
$current_user->user_login
:
현재 로그인된 계정의 displayname을 불러오는 코드.
current_user_can()
:
사용자의 지정된 기능 확인하는 함수.
‘administrator’
:
관리자 역할 지정.
get_admin_url()
:
관리자 페이지 주소 가져오는 함수.
참고
워드프레스 사용자 역할 체크하기
Wordpress.org - Roles and capabilities Article
Wordpress.org - get_admin_url - reference
관련 포스트
사용자 역할별 메뉴 보이게 하는 방법 - 현재글
사용자 권한별 메뉴 보이게 하는 방법