워드프레스를 처음 접하게 되면 역할(Role)이라는 말이 조금 어렵게 느껴지실 겁니다.
쉽게 비유 하자면 워드프레스에서 역할(Role)이라는 것은 네이버나 다음 카페에서의 회원 등급과 같다고 생각하시면 됩니다.
카페를 처음 만들고 모든 것을 관리하는 운영자도 있으며, 그 운영자를 돕는 중간 관리자 그리고 보통의 카페 회원들이 있겠죠.
이렇게 나뉜 사용자의 등급을 워드프레스에서는 역할(Role)이라고 합니다.
기본적인 워드프레스의 역할(Role)은 아래와 같습니다.
1. 관리자(administrator)
2. 편집자(editor)
3. 글쓴이(author)
4. 기여자(contributor)
5. 구독자(subscriber)
관리자가 가장 많은 권한을 갖고 있으며 구독자가 가장 적은 권한을 갖고 있습니다.
간혹 글쓴이(author)라는 한글명 때문에 헷갈려 하는 분들이 있는데요. 실제로 글을 쓴 글쓴이를 말하는 게 아니기 때문에 각각 등급만 구분하시면 됩니다.
그런데 기본제공되는 역할로는 한계가 있겠죠?
자, 이제 워드프레스 역할을 수정하고 추가하는 방법에 대해서 알아보겠습니다.
워드프레스 역할을 수정 추가하는데에는 User Role Editor, wp-members 2가지 플러그인이 필요합니다.
먼저 User role editor를 사용하는 방법을 알려드리겠습니다.
플러그인에서 User role editor를 설치하면 다음과 같이 Editor 창이 나옵니다.
여기서 Add role 버튼을 클릭하면 Role name(ID), Display role name, Make copy of가 나오는데
Role name(ID)는 영문으로 지정해주면되며 반드시 영문,숫자 혹은 _ 언더바로 이름을 지어주어야 합니다.
Display role name은 한글 혹은 영문으로 사용자에게 표시되는 이름입니다.
저는 level_1,level_2,level_3로 3가지 역할을 추가해 보았습니다.
역할 추가가 완료되었으면 wp-members 플러그인의 필드 추가로 들어갑니다.
필드 레이블은 회원분류, Meta key는 데이터베이스 메타 값으로 member_classify로 지정해줍니다.
Values는 표시이름|값(role name ID)로 지정해주며 ,콤마로 다음 역할을 추가합니다.
역할 추가 완료 후 필드가 완성되었으면 테마의 functions.php 파일에 코드를 추가해주시면 됩니다.
차일드테마를 사용하면 차일드테마의 functions.php 파일에 코드를 추가해주면 됩니다.
add_filter('pre_option_default_role', 'my_default_registration_role_1'); function my_default_registration_role_1($default_role){ if(isset($_POST['member_classify']) && $_POST['member_classify'] == 'level_1'){ $default_role = 'level_1'; } return $default_role; } add_filter('pre_option_default_role', 'my_default_registration_role_2'); function my_default_registration_role_2($default_role){ if(isset($_POST['member_classify']) && $_POST['member_classify'] == 'level_2'){ $default_role = 'level_2'; } return $default_role; } add_filter('pre_option_default_role', 'my_default_registration_role_3'); function my_default_registration_role_3($default_role){ if(isset($_POST['member_classify']) && $_POST['member_classify'] == 'level_3'){ $default_role = 'level_3'; } return $default_role; }
워드프레스 관리자 -> 외모 -> 테마 편집기 페이지에서 functions.php 파일을 편집할 수 있습니다.
add_filter(‘pre_option_default_role’, ‘my_default_registration_role_1’);
function my_default_registration_role_1($default_role){
if(isset($_POST[‘member_classify’]) && $_POST[‘member_classify’] == ‘level_1’){
$default_role = ‘level_1’;
}
return $default_role;
}
위의 예제 코드는 member_classify 필드의 값이 “level_1” 이라면 역할(Role)을 레벨1(level_1)으로 등록하는 코드입니다.
예제 코드를 적절히 응용한다면 다양하게 활용할 수 있을 것입니다.
위 글을 활용하여 커뮤니티 사이트, 쇼핑몰 등을 제작할때 회원등급을 나누는 기능을 사용해보시기 바랍니다.