워드프레스에서 특정 사용자 유형의 사용자 권한 지정하기

4

플러그인 사용

워드프레스에서 새로운 사용자 레벨을 추가하거나 기존 사용자 유형의 권한을 수정하려면 User Role Editor와 같은 플러그인을 사용할 수 있습니다. 예를 들어, User Role Editor를 설치한 후에 알림판의 사용자 > User Role Editor로 이동하는 원하는 사용자 유형의 권한(Permission)을 변경할 수 있습니다.

위의 그림에서는 author(글쓴이) 사용자 유형의 권한을 변경할 수 있는 화면입니다. 이와 같이 플러그인을 사용하면 수월하게 사용자 유형의 권한을 수정할 수 있습니다.

그리고 오른쪽에서 “Add Role(역할 추가)”을 클릭하여 새로운 역할(회원 등급)을 추가할 수 있습니다.

add_action 함수 사용

플러그인을 사용하지 않고 직접 코드를 사용하려는 경우 다음과 같은 형식으로 테마의 함수 파일(functions.php)에 추가할 수 있습니다.

if ( ! function_exists( 'writer_set_roles' ) ):
function writer_set_roles()
{
global $wp_roles;
// 글/페이지 편집
$wp_roles->add_cap('author','edit_others_pages'); // author가 다른 페이지를 수정할 수 있도록 허용
$wp_roles->add_cap('author','edit_published_pages'); // author가 발행된 페이지를 수정할 수 있도록 허용
$wp_roles->add_cap('author','edit_private_pages');  // author가 private 페이지를 수정할 수 있도록 허용
$wp_roles->add_cap('author','publish_pages');  // author가 페이지를 발행할 수 있도록 허용
$wp_roles->add_cap('author','delete_pages');  // author가 페이지를 삭제할 수 있도록 허용
$wp_roles->add_cap('author','delete_others_pages');  // author가 다른 페이지를 삭제할 수 있도록 허용
$wp_roles->add_cap('author','delete_others_posts');  // author가 다른 글을 삭제할 수 있도록 허용
$wp_roles->add_cap('author','delete_published_pages');  // author가 발행된 페이지를 삭제할 수 있도록 허용
$wp_roles->add_cap('author','manage_categories');  // author가 카테고리를 관리할수 있도록 허용

// 외모
$wp_roles->add_cap('author','edit_themes');  // author가 테마를 편집할 수 있도록 허용
$wp_roles->add_cap('author','edit_theme_options');  // author가 테마 옵션을 편집할 수 있도록 허용
$wp_roles->add_cap('author','manage_widgets');  // author가 위젯을 관리할 수 있도록 허용
$wp_roles->add_cap('author','edit_widgets');  // author가 위젯을 수정할 수 있도록 허용

// 플러그인 권한 예제
$wp_roles->add_cap('author','NextGEN Gallery overview');
$wp_roles->add_cap('author','NextGEN Use TinyMCE');
$wp_roles->add_cap('author','NextGEN Upload images');
$wp_roles->add_cap('author','NextGEN Manage gallery');
$wp_roles->add_cap('author','NextGEN Manage others gallery');
}
endif;
add_action( 'after_setup_theme', 'writer_set_roles' );
// Source: http://wordpress.stackexchange.com

위의 add_action 함수에서는 author(글쓴이)에 새로운 권한을 부여하는 예를 보여줍니다. author 대신에 contributor(기여자), editor(편집자), 사용자 지정 사용자 유형 등에 응용할 수 있습니다.

워드프레스의 역할과 권한에 대한 자세한 내용은 WordPress Codex 페이지를 참고하시기 바랍니다. 이 Codex 페이지에 나오는 권한은 사용자 권한별로 제한할 때에도 사용할 수 있습니다. 이 글에서 특정 글/페이지/카테고리에 액세스 제한하는 방법을 설명하고 있습니다. 이 글에서 회원 역할별로 제한하는 방법을 보여주는 데, 이 보다는 권한별로 사용하는 것이 더 효율적일 수 있습니다. 예를 들어, 관리자일 경우 if( current_user_can( ‘administrator’ ) ) 코드 대신

if ( current_user_can( 'activate_plugins' ))

형태를 사용할 수 있습니다.  관리자 아닐 경우에는 다음과 같은 코드를 사용할 수 있습니다.

if ( !current_user_can( 'activate_plugins' ))

 

*일부 글에 제휴링크가 포함될 수 있으며, 기부를 통해 블로그 운영을 후원하실 수 있습니다.

Related Posts

4개 댓글
  1. 이주열 님의 말씀

    안녕하세요.
    user role editor 를 사용해서 회원별 권한을 수정해 보려고 했습니다.
    그런데 관리자 화면에서 woocommerce 부분이 보이질 않습니다.
    그래서 설치된 플러그인으로 들어가서 확인했더니
    접근 권한이 없다고 나옵니다.
    관리자 권한은 건드리지 않았는데 왜 그런지 잘 모르겠습니다.

    또한 플러그인을 삭제 했었는데 여전히 보이질 않습니다.

    1. Word 님의 말씀

      안녕하세요?

      유선상으로 말씀드렸듯이 User Role Editor는 매우 유명한 플러그인이고 많은 사용자가 사용하고 있습니다. (현재 40만 개 이상 사이트에서 이 플러그인이 사용 중이네요.)

      말씀하신 증상이 User Role Editor의 버그인 것으로 생각되시면 User Role Editor에 문의해보실 수 있습니다. 특히 Pro 버전( https://www.role-editor.com/ )도 있으므로 Pro 버전을 구매하시면 지원까지 받을 수 있을 것입니다.

  2. 1.618station 님의 말씀

    WPFront User Role Editor   <—이거 프로 버전 사용하면 제가 원하는 라이브러리 접근 못하게 하는걸 할 수 있네요!!!

    님 덕분에 찾았습니다.!
    감사합니다.!!
    1. wordcracker 님의 말씀

      좋은 정보 감사합니다^^ 즐거운 하루 되세요.

댓글 남기기