본문으로 바로가기

워드프레스 접근 제한

category 워드프레스/WP 팁&테크 2015. 9. 10. 11:00

소스 코드를 직접 수정하여 접근을 제한하는 방법을 살펴봅니다.

특정 카테고리 접근 제한

비로그인 사용자가 특정 카테고리의 글에 접근하는 것을 제한하려는 경우 :

<?php 
if ( !is_user_logged_in() && in_category( '카테고리 이름' ) ) {
  echo '이 글을 보려면 로그인이 필요합니다.';
} else {
  the_content();
}
?>

위와 같은 구문을 single.php나 적당한 파일에 삽입하면 게스트 사용자가 접근하는 것을 제한할 수 있다. 만약 모든 카테고리에 접근하는 것을 제한하려면 is_category() 를 사용하면 된다.

특정 페이지 접근 제한

특정 페이지에 대한 접근을 제한하기 위해서는 is_page() 를 이용한다.

<?php
if ( !is_user_logged_in() && is_page( array( 42, 'about-me', 'Contact' ) ) ) {
  echo '이 페이지에 접근할 수 없습니다.';
} else {
...
}
?>

is_page() 의 매개변수로 페이지의 ID값, 페이지의 제목, 페이지의 슬러그등을 입력할 수 있다.

회원 역할별로 접근 제한

워드프레스에서 기본적으로 제공하는 역할을 이용하여 접근 제한 코드로 응용할 수 있다.

if( current_user_can( 'administrator' ) ){} 
if( current_user_can( 'editor' ) ){} 
if( current_user_can( 'author' ) ){} 
if( current_user_can( 'contributor' ) ){} 
if( current_user_can( 'subscriber' ) ){} 

역할을 확장하는 플러그인중에 User Role Editor라는 것이 있다. 이 플러그인을 이용하여 원하는 역할을 생성해서 응용할 수도 있겠다.

if( current_user_can( 'level_1' ) ){}  
if( current_user_can( 'level_2' ) ){} 
if( current_user_can( 'level_3' ) ){}