여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. 사용자 역할별 메뉴 보이게 하는 방법
사용자 역할별 메뉴 보이게 하는 방법
3년전 작성
3년전 수정

사용자 역할별 메뉴 표시하는 방법을 알아보자.

여기서 역할별 메뉴란 사용자 역할 : 구독자, 기여자, 글쓴이, 편집자, 관리자 와 회원에게 정해줄 수 있는 역할을 의미한다.
이 역할은 회원 등급과 비슷하게 사용할 수 있다. 그러나 역할마다 권한이 다 다르다.

역할 여러개 지정해주려면 코드가 길어져서 별로라 개인적으로 사용자 권한별 메뉴 보이게 하는 방법을 참고하여 진행하는게 나은듯하다.

역할별 메뉴 표시

역할별 메뉴 표시할 때에는 메뉴 보여주고자하는 위치, 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()
:
관리자 페이지 주소 가져오는 함수.
참고
관련 포스트
사용자 역할별 메뉴 보이게 하는 방법 - 현재글

Mingg`s Diary
밍구
공부 목적 블로그