특정 글/페이지/카테고리에 액세스 제한하기(워드프레스)

76

워드프레스에서 특정 컨텐츠(페이지/글/카테고리 등)를 제한하는 방법은 여러 가지가 있습니다.

플러그인을 사용하여 특정 컨테츠 제한하기

특정 페이지나 글에 대한 접근을 회원으로 제한하기를 원하는 경우 Page Restrict라는 플러그인을 사용할 수 있습니다.
page restrict

만약 회원제 사이트를 운영하기를 원하시는 경우에는 User Access Manager같은 플러그인이 있습니다. 이 플러그인 페이지에 나와있는 이 플러그인의 기능입니다.

  • 사용자 그룹
  • 읽기/수정에 대한 액세스 개별 설정
  • 사용자 그룹별 액세스 설정(접근 설정)
  • 글 카테고리별 액세스 설정
  • 사용자 정의된 글/페이지 제목(액세스 권한이 없는 경우)
  • 사용자 정의된 글/페이지 텍스트(액세스 권한이 없는 경우)
  • 옵션 로그인 양식(액세스 권한이 없는 경우)
  • 글/페이지 완전히 숨김
  • 내비게이션(메뉴)에서 페이지 숨김
  • 다른 글에 접근하지 못하도록 제한(액세스 권한이 없는 경우)
  • IP주소별 액세스 부여
  • ...

유료 회원제 사이트를 운영하기를 원하는 경우에는 Ultimate Membership Pro, Membership Pro와 같은 유료 플러그인을 사용할 수 있습니다. 특히 Ultimate Membership Pro 플러그인은 유료 플러그인 판매 사이트인 Codecanyon에서 베스트 셀링 플러그인 목록에 올라 있고 많은 사용자가 사용하는 플러그인입니다.

Ultimate Membership Pro WordPress Plugin

Ultimate Membership Pro 플러그인을 사용하면 페이지, 상품(제품), 카테고리, URL 컨텐츠 섹션, 이미지, 메뉴, 그외 모든 것을 멤버십에 따라 보호할 수 있고 Redirect 또는 Replace Content(컨텐츠 교체) 규칙을 설정할 수 있습니다. 무제한 구독을 설정할 수 있고, 유료/무료 멤버십을 운영할 수 있습니다. 사용자/구매자에게 멀티 결제, 일간/주간/월간 결제, 쿠폰 발행, 유료/무료 트라이얼,  이메일 인증 등 다양한 기능을 제공합니다. 자세한 내용은 플러그인 페이지를 방문해보시기 바랍니다.

추가: 후크(액션/필터) 사용하기

별도의 플러그인이나 테마 소스를 수정하지 않고 특정 글/페이지/카테고리에 대한 액세스를 제한할 수 있습니다. 이 부분에 대해서는 별도의 글을 작성해보았습니다. 이 글을 참고해보세요.

소스 파일 수정

보다 세밀히 조정하고 싶다면 소스 파일을 직접 수정하는 것도 가능합니다.

특정 카테고리의 글 제한

예를 들어,
비로그인 사용자가 특정 카테고리의 글에 접근하는 제한하려는 경우:

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

위와 같은 구문을 single.php나 적당한 파일에 삽입하면 특정 카테고리의 글에 게스트 사용자가 접근하는 경우 지정된 메시지를 출력합니다. 카테고리 자체를 제한하려면 is_category를 사용하면 됩니다.

in_category와 is_category의 차이점은 category 앞에 사용된 단어로 쉽게 이해할 수 있습니다. in_category는 카테고리 내(in)에 있는 경우라는 의미가 되고 is_category는 카테고리인(is) 경우의 의미가 됩니다. 두 함수는 분명한 차이점이 있습니다. 즉, in_category는 어떤 글이 카테고리에 속해 있는지 여부를 검사하여 True 또는 False를 반환하고, is_category()는 카테고리인지 여부를 검사하여 True 또는 False를 반환합니다.

특정 페이지 제한

in_category 대신 페이지를 제한하려는 경우 해당 페이지 템플릿에서 다음과 비슷한 형식의 구문으로 제한할 수 있습니다:

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

...
}
?>

is_page, in_caegtory, is_category 사용법은 WordPress Codex 페이지에서 확인할 수 있습니다.

WordPress Codex 페이지에서 구체적인 사용법을 확인하여 응용이 가능합니다.

회원 역할별로 제한

회원 등급별로 제한을 하려는 경우에는 다음과 같은 코드를 응용할 수 있습니다.

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' ) ){} // 구독자인 경우에만

회원 등급(역할)을 추가하여 제한하고 싶은 경우에는 사용자 역할(회원 등급) 이해/새로운 회원 등급 추가하기 (워드프레스) 글을 참조하여 회원 역할을 추가하고 다음과 같은 코드를 사용할 수 있습니다.

if( current_user_can( 'level_1' ) ){}  // 레벨 1 사용자인 경우에만
if( current_user_can( 'level_2' ) ){}  // 레벨 2 사용자인 경우에만
if( current_user_can( 'level_3' ) ){}  // 레벨 3 사용자인 경우에만

이상과 같이 워드프레스에서 다양한 방법으로 컨텐츠에 대한 제한을 설정할 수 있습니다. 현재 사이트 성격에 따라 원하는 방법을 사용하시기 바랍니다.

추가: 사용자 역할(회원 등급)별로 컨텐츠를 제한하는 방법은 이 글을 참고해보세요.

참고: 위의 코드에서 모든 따옴표(작은 따옴표, 큰 따옴표)는 모두 영문에서 사용되는 직선형 따옴표(straight quote marks)가 되어야 합니다. 간혹 우리나라에서 사용되는 따옴표(curly quote marks)가 있는데, 코딩 과정에서 모두 수정해야 합니다. (글을 작성하는 과정에서 의도하지 않게 우리나라에서 사용되는 따옴표가 사용되는 경우가 있네요.)


추가 1:

위의 코드를 응용하면 아래와 같이 특정 글에 접근을 액세스할 수 있습니다. 이 때 특정 카테고리를 지정할 수도 있고 다른 기준으로 제한하는 것도 가능합니다.

Login Required

그리고 wp_redirect를 사용하여 로그인 화면이 직접 표시되도록 할 수 있습니다.  이 경우 다음과 같은 코드를 사용합니다.

$redirect = wp_login_url($_SERVER['REQUEST_URI']);
wp_redirect( $redirect );
exit;

또, 사용 중인 회원가입 플러그인과 연계하여 리디렉션시키는 코드를 삽입할 수 있습니다. 예를 들어, 비로그인 사용자가 이 글을 방문하면 워드프레스에서 기본적으로 UserPro 플로그인에서 제공하는 로그인 화면이 표시되고, 사용자 이름과 비밀번호를 입력하면 해당 글로 리디렉션됩니다. (추가: UserPro가 사용자 평가도 괜찮고 레이아웃도 보기 좋지만, 이전 테마에서 호환성 때문인지 잘 작동을 하지 않아 제거한 상태입니다. 하지만 다른 테마에서 테스트해보니 이상 없이 잘 작동하네요. 테마에 따른 특성을 타는 것 같습니다.)

UserPro


 

추가 2 - 글/페이지 내의 일부 텍스트 제한:

특정 글이나 페이지의 글의 내용 중 일부를 일반인에게 공개하고 나머지 부분이나 일부 민감한 정보를 로그인한 사용자나 특정 회원 레벨(역할 레벨)에게만 표시되도록 하기를 원하는 경우 Restrict Content라는 플러그인을 사용할 수 있습니다.  이 플러그인을 사용하여 글/페이지 전체를 특정 회원 레벨 사용자에게 표시되도록 제한하거나, 숏코드를 사용하여 선택한 일부분만 제한할 수도 있습니다.

플러그인을 사용하여 전체 사이트 잠금

댓글에서 UserPro 사용 시 게스트 사용자(비로그인 사용자)가 사이트에 접근하면 로그인 페이지가 표시된다는 문의를 주셔서 UserPro를 테스트 사이트에 설치하여 설정을 살펴보았습니다. UserPro에서 Restrict Content 아래의 "Global Restrict/Lock Settings"에서 전체 사이트를 잠금 설정할 것인지를 지정하는 옵션이 있네요.

UserPro Global Restrict Lock Settings

이처럼 특정 로그인 플러그인에서 사이트 잠금 기능을 제공하는 경우가 있을 수 있습니다. 위와 같은 기능을 간단한 코드로 구현하는 것도 가능합니다. 아래 코드를 사용해보시기 바랍니다(실제 상황에서 테스트해보지는 않았습니다):

add_action( 'template_redirect', 'wpse52455_redirect' );
function wpse52455_redirect(){
if(!is_user_logged_in()) {
$redirect = wp_login_url( get_permalink() );
wp_redirect( $redirect );
exit;
}
}
// Reference

잘 안 되면 $redirect  부분을 다음 코드로 대체해보시기 바랍니다:

$redirect = home_url() . '/wp-login.php?redirect_to=' . urlencode( $_SERVER['REQUEST_URI'] );

참고:

76 개 댓글

  1. 안녕하세요? 블로그에서 많은 정보를 얻고 있습니다.
    이글을 보고 멤버십 플러그인 Ultimate Membership Pro를 구매해서 설치했는데 지불결제에서 국내 PG 설치가 안되는 것 같습니다. 다른 기능은 딱 제가 찾는 플러그인인데 Payment를 해결하는 방법은 없을 까요?

    • 안녕하세요?

      블로그를 방문해주셔서 감사합니다.

      우커머스의 경우 국내 PG 연동이 되는 플러그인이 개발되어 있지만, 이런 특정 플러그인의 경우 직접 개발이 필요한 사안 같습니다.

      예를 들어, 단비스토어에서는 EDD Content Restriction 플러그인을 국내 결제 모듈과 연동시켜서 195만원에 판매하고 있네요. 플러그인 라이선스까지 포함할 경우 261만원이네요ㅠㅠ

      https://uploads.disquscdn.com/images/eb0a0148a97136692bcadef37a132776e4bbcd3b5d46ced6b1fb3c54769d0fac.jpg

      개발자에게 연동 작업을 의뢰해보시면 어떨까요?

      아니면 우커머스 멤버십 플러그인도 있는데, 그런 플러그인은 어떤지 모르겠습니다.
      http://www.thewordcracker.com/basic/woocommerce-membership/

      아마 결제는 우커머스에서 처리하므로 우커머스에서 국내 PG를 연동시키면 문제가 없을 것 같지만, 미리 플러그인 개발자에게 우커머스와 연동되는 결제 게이트 플러그인을 사용할 경우 결제가 가능한지 확인해보면 더 안전할 것 같습니다.

  2. 안녕하세요. 좋은 자료 감사합니다.
    저도 한번 비공개로 테스트해보려고...
    워드프레스 모든페이지보기에서 빠른편집으로 "비공개로 설정하기"를 모든 페이지를 비공개로 설정하고 로그아웃했더니 당황스럽게도... 이제 로그인 페이지로 가면 404로 리다이렉트가 됩니다.
    버디프레스 플러그인을 설치해서 로그인페이지도가 비공개가 된것 같습니다.
    대시보드로 들어가야 페이지 설정을 다시 바꿀텐데...
    이럴때는 어떻게 로그인 해야 하는지요..

    • 안녕하세요?

      모든 컨텐츠를 Private(비공개)로 설정하려는 경우 My Private Site( https://wordpress.org/plugins/jonradio-private-site/)와 같은 플러그인을 사용하거나 Hide My Site와 같은 플러그인을 사용하는 것이 좋습니다.

      http://www.thewordcracker.com/basic/hide-my-site-for-wordpress-site-developers-and-testers/

      또는 공사 중을 표시하는 플러그인을 사용할 수도 있습니다( http://www.thewordcracker.com/basic/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-%EA%B3%B5%EC%82%AC-%EC%A4%91%EC%82%AC%EC%9D%B4%ED%8A%B8-%EC%A4%80%EB%B9%84-%EC%A4%91%EC%9C%A0%EC%A7%80%EB%B3%B4%EC%88%98-%EC%95%8C%EB%A6%BC-%ED%94%8C/).

      이 경우 여러 가지 방법으로 플러그인을 비활성화할 수 있습니다. FTP에 접속하여 BuddyPress 폴더의 이름을 바꾸어서 테스트해보시기 바랍니다. 잘 안 되면, phpMyAdmin에 접속하신 후에, DB를 백업 받아놓으시고 다음 쿼리를 실행해보시기 바랍니다.
      UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';

  3. 안녕하세요~ 워드프레스 사용자인데요.
    유용한 정보 감사합니다.
    차근차근 읽고 적용하는데도 어려워서요..!
    블로그 형식으로 만든 페이지에서
    글이 포스팅되어있는데 그걸 어떤 회원은 볼 수 없게 만들고 싶어요.
    프리미엄 회원만 게시글을 볼 수 있게요.
    그건 어떤 플러그인을 써서 하면 좋을까요?

    • 안녕하세요?

      좋은 품질의 회원제 플러그인의 경우 비용이 비싼 편입니다.
      예를 들어 평가가 괜찮은 Restrict content pro( https://restrictcontentpro.com/ )라는 플러그인의 경우 가격이 만만치 않습니다. 물론 그만한 기능을 하기 때문에 비싼 이유가 있을 것 같습니다.

      저렴하게 회원제 사이트를 구현하는 방법으로 codecanyon 사이트에서 판매하는 플러그인을 이용할 수 있습니다. 다음 두 플러그인을 살펴보시기 바랍니다. 베스트 셀링 플러그인 목록에도 올라와 있는 플러그인입니다.

      http://www.thewordcracker.com/basic/%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-%EC%9D%B8%EA%B8%B0-%EB%A9%A4%EB%B2%84%EC%8B%AD-%ED%94%8C%EB%9F%AC%EA%B7%B8%EC%9D%B8-armember/

      http://www.thewordcracker.com/basic/wordpress-membership/

      • Restrict Content Pro는 국내 PG를 지원하지 않습니다. 저희도 살려다가 PG 연동 문제로 EDD Content Restriction으로 돌아 섰습니디. 물론 이것도 개발했지만요...

  4. 안녕하세요. 로그인 사용자만 특정페이지를 이용하게 하고싶은데

    여기서 페이지 이름이 'about-me' 대신 넣는건가요?
    또, 어디 파일에 넣어야하는건가요 ?

    • 안녕하세요?

      다음과 같은 코드를 함수 파일에 추가해보시겠어요?

      add_action( 'template_redirect', 'wpse52455_redirect' );
      function wpse52455_redirect(){
      if( !is_user_logged_in() && is_page( array( 42, 'about-me', 'Contact' ) ) ) {
      $redirect = wp_login_url( get_permalink() );
      wp_redirect( $redirect );
      exit;
      }
      }

      테스트를 해보지 않았기 때문에 잘 될지는 모르겠습니다.

  5. 안녕하세요. 전 userpro를 사용하고있는데요 비로그인 사용자가 홈페이지를 방문하면 로그인 화면이 바로 표시되는데....로그인페이지가 아니라 홈(첫페이지)로 보이게하고싶어요...아무리 찾아도 설정하는게없는데..혹시 알수있을까요?

    • 안녕하세요?

      Userpro를 비활성화해보시고, 동일한 문제가 나타나면 UserPro 문제가 아닐 것이고,
      동일한 문제가 나타나지 않으면 UserPro와 관련된 문제로 볼 수 있을 것입니다.

      현재 이 사이트에 사용 중인 테마에 Userpro가 함께 포함되어 있지만, 제대로 작동하지 않아서 비활성화한 상태입니다. 그래서 UserPro에 그런 설정이 있는지 확인해드릴 수가 없습니다. 문제가 UserPro와 관련되었다면 UserPro 플러그인 판매자에게 이 문제를 문의해보시면 가장 확실할 것 같습니다.

      우선은 최신 버전으로 업데이트하지 않았다면 최신 버전으로 업데이트한 후에 테스트해보시기 바랍니다.

    • 테스트로 다른 사이트에 UserPro를 설치해보았습니다.

      아마 아래 그림의 설정에서 전체 사이트를 잠금 상태(Lock)로 설정한 것 같습니다.

      그림 내의 설정이 "Yes"로 되어 있는지 확인해보시기 바랍니다. Yes로 되어 있다면 No로 바꾸어주시면 문제가 해결될 것입니다.

    • UserPro 자체가 좀 불안합니다. DB쿼리 문제도 있고요. 저희는 수정해서 쓰긴 했는 데, 유사한 경우면 Ultimate Member를 사용하고 있습니다.

  6. 이 사이트의 글을 보면서 공부하고 있습니다. 앞으로도 좋은 글 부탁드립니다. 즐거운 하루 되세요.

  7. 이 사이트를 참고하면서 공부하고 있는 일인입니다. 이런 정보를 공유해주셔서 감사합니다^^

  8. 좋은 정보 감사합니다. 글 일부를 회원에게만 보여주고 싶어서 방법을 찾고 있었는데 여기서 소개한 플러그인을 사용해봐야겠네요. 즐거운 하루되세요~~

    • 안녕하세요? NicEdit라는 textarea를 대체하는 WYSIWYG 에디터입니다. 자세한 내용은 http://www.thewordcracker.com/basic/how-to-used-nicedit-in-wordpress/ 글을 참고해보세요.

  9. 좋은글 감사합니다.

    Membership Pro가 저희가 찾던 플러그인인 것같은데요. 매월 결제하지 않고도 사용이가능한가요? 다른 사이트의 글에서는 매월 결제해야 한다고 되어있어서요...
    • 안녕하세요?

      Download MEMBERSHIP 2 PRO 버튼을 클릭하면 팝업 화면이 뜨는데 오른쪽에 다음과 같이 표시됩니다.

      의미는 매월 19달러에 무제한 다운로드, 사이트 및 플러그인 지원을 받을 수 있다는 것입니다. 그렇다면 첫 달만 결제하고 그 다음달부터 결제를 중지시키면 어떻게 될까요? 여기에 대해 몇 달 전에 플러그인 제작자(판매자)에게 문의했는데요, 다음과 같은 답변을 받았습니다.

      While all our plans are defaulted to subscriptions, you don't need to continue with the subscription if you don't want to! You can simply cancel that right after the purchase is made, and continue using the User Synchronization plugin on as many sites you like, for as long you would like :)
      This is because the subscription is only required for accessing support, updates or use of our API key.
      So in a sense that you signup and cancel right after, it's like an "one-off" purchase of a User Synchronization plugin, and updates - support for 1 month.
      And if you ever wish to access our premium services down the track, simply join us back and cancel once more. No stress :)

      위의 메일에서는 User Synchronization 플러그인에 대한 내용입니다만, 동일한 제작자입니다. 등록한 후에 곧바로 취소하면 "one-off" 구매가 되어 1개월간 업데이트와 지원을 받을 수 있습니다. 1개월이 경과하면 사이트 제한없이 계속 사용이 가능하지만 업데이트와 지원을 밪ㄷ지 못하게 되는 것입니다. 그러다가 프리미엄 지원을 원할 때 다시 등록하여 다시 곧바로 취소하면 됩니다.

      위의 글이 도움이 되었기를 바랍니다.

      • 상세한 설명 감사합니다. 많은 도움이 되었습니다. 즐거운 휴일되시기 바랍니다☺☺☺

      • 좋은 정보 감사합니다. 위의 그림을 보면 "Unlimited downloads, sites"라고 되어 있는데, 구입후 1개월이 경과하기전에 subscription얼 취소해도 계속 사이트에 제한 없이 사용할 수 있나요?

  10. 참고로 관리자일 경우 if( current_user_can( ‘administrator’ ) ) 코드 대신

    if ( current_user_can( 'activate_plugins' ))

    형식을 사용할 수 있습니다.  관리자 아닐 경우:

    if ( !current_user_can( 'activate_plugins' ))

    http://www.thewordcracker.com/intermediate/how-to-edit-permissions-of-user-types-in-wordpress/ 참고

  11. 안녕하세요.

    태그로도 접속하지 못하도록  제한할 수 있나요? 즉 어떤 태그를 가진 글만 다른 사용자가 못보도록 하고 싶은데 방법을 모르겠습니다ㅠㅠ
    • 안녕하세요?

      이 경우 has_tag('태그') 함수를 사용할 수 있습니다.

      예시:

      if ( has_tag('abc') && (in_category('a')) ) {
      // 사용자 코드
       }

      이 경우 abc 태그가 있고 카테고리가 a인 글들에 대해 지정된 작업을 수행합니다.

  12. 항상 친절한 답변 감사합니다.

    하나만 더 질문 드릴게요
    테마를 수정하려면 무엇을 공부해야 하나요?
    • 안녕하세요?

      수정 정도에 따라 다를 것 같습니다.
      간단한 수정은 CSS와 기본적인 PHP 정도의 지식이면 가능하겠지만, 복잡한 수정은 더 깊은 프로그래밍 언어 지식이 필요할 것입니다.
      우선은 CSS 정도로도 웬만한 레이아웃 수정을 할 수 있습니다.
      프로그래밍 언어에 대해 처음이시라면 CSS부터 시작해보실 것을 권장합니다. CSS는 어렵지 않기 때문에 금방 습득이 가능할 것입니다. 익숙해지시면 PHP 등으로 확장하여 배우실 수 있을 것입니다.

  13. 하나 물어봐도 될까요? 워드프레스를 처음 접하는데 무엇부터 시작해야 하나요? 꼭 답변 부탁드립니다.

    • 안녕하세요?
      워드프레스를 설치하셨다면 마음에 드는 테마를 선택하고 설치하여 사용을 시작하시면 됩니다. 하지만 먼저 전체적으로 둘러보시면서 익숙해지시면 좋을 것 같습니다. 이 글( http://www.thewordcracker.com/basic/whats-next-after-installing-wordpress/)을 참고해보시기 바랍니다.

      • 안녕하세요?

        초보자를 위한 워드프레스 관련 동영상으로 한글 버전은 잘 모르겠습니다.
        http://www.thewordcracker.com/basic/basic-worpress-training-videos/ 글에서 워드프레스 기본 동영상을 볼 수 있습니다. 영어로 되어 부담이 될 수 있지만, 살펴보시면 대강적인 사용법을 익히실 수 있을 것입니다.

        그리고 영어에 어느 정도 자신이 있다면 lynda.com의 동영상 강의를 추천해드립니다. 기본적인 내용부터 플러그인 제작과 같은 깊이 있는 내용의 강좌까지 다양한 콘텐츠를 제공합니다.

    • 안녕하세요?

      Custom Taxonomy의 경우 is_tax() 함수를 한 번 살펴보시기 바랍니다. <a href=" https://codex.wordpress.org/Function_Reference/is_tax" target="_blank" rel="nofollow"> https://codex.wordpress.org/Function_Reference/is_tax</a&gt;

      예:
      <?php if ( is_tax('taxonomy-name','taxonomy-one' ) ) {?>
          // 코드 <?php } elseif ( is_tax('taxonomy-name','taxonomy-two' ) ) {?>
          // 코드 <?php } ?>
    • 안녕하세요?
      댓글 감사합니다. 테마를 수정하는 작업은 초보자에게 쉽지 않을 수 있습니다. (그래서 이 글은 중급으로 분류해놓았습니다.) 즐거운 하루되세요.

    • 안녕하세요? 아마 캐시와 관련이 있을 것 같네요. 워드프레스에 캐시 플러그인이 설치된 경우 캐시를 삭제해주시고요, 브라우저의 캐시도 삭제해보시기 바랍니다.

  14. 안녕하세요. userpro라는 플러그인을 구입했는데 잘 안 되네요. 혹시 어떻게 하면 제대로 작동하는지 아시나요?

    • 안녕하세요?

      제 블로그를 방문해주셔서 감사합니다. UserPro라는 회원가입 플러그인이 이 테마에도 기본적으로 설치되어 있는데요, 이상하게 제대로 작동하지가 않네요. 별다른 오류 메시지가 표시되는 것도 아닌데 말입니다. 플러그인 제작자와 테마 제작자 모두에게 연락해봤는데요, 해결을 못 했습니다. 이 테마에 기본으로 설치되는 플러그인은 일종의 '번들'이므로 원칙적으로 플러그인 제작자는 아무런 지원을 해주지 않습니다. 그래서 테마 제작자에게 문의하여 해결해야 하는데요, 테마 제작자도 이 플러그인에 대해 잘 몰라서 어떻게 할 수가 없어서 저는 그냥 삭제했습니다. (시간이 되면 테스트해보고 싶었는데 굳이 이 플러그인을 사용할 필요성을 못 느꼈습니다...)

      만약 UserPro 워드프레스 플러그인을 직접 플러그인만 구매한 경우라면 직접 제작자에게 연락하여 지원을 받으시기 바랍니다. 증상을 정확하게 설명해주고 문제 해결을 요청하면 아마 해결이 가능할 수도 있을 것 같습니다. 간혹 특정 테마에 대해서는 모른다고 발뺌(?)할 수도 있을 것입니다.

      • 답변 감사합니다. 플러그인을 판매한 곳에 문의해봐야 겠네요. 첨으로 유료 플러그인을 구입했는데... 생각처럼 안되네요ㅠㅠ

  15. 좋은 글 감사합니다.

    $redirect = wp_login_url($_SERVER['REQUEST_URI']);
    ...
    코드를 테마 파일에 넣으면 사이트가 멈추네요... 어떻게 해야할지 알려주시면 감사하겠습니다.
    • 안녕하세요?

      아마도 <?php와 ?>를 추가하지 않은 것 같습니다. 위의 코드 맨 윗줄에 <?php를, 맨 아랫줄에 ?>를 추가해보시기 바랍니다. 이것은 PHP 기본 문법입니다. 테마를 수정하시려면 먼저 기본적인 PHP 문법을 참조하시면 좋을 듯합니다.

  16. 개별 글에서 카테고리를 체크하는 경우에는 is_category 대신 in_category를 사용하시기 바랍니다.

  17. 위 방법이 잘 안 되면 template_redirect action을 사용해보시기 바랍니다. template_redirect에 대한 자세한 내용은 여기를 참고하세요.

  18. 친절한 답변 너무 감사드립니다.

    도와주신 덕분에 문제를 해결하게 되었습니다.

    다시 한번 감사드리며, 즐거운 하루 되시길 기원합니다.
    오준석 올림.
  19. 답변감사드립니다. 차일드테마에 싱글을 수정하여 업로드 하였으나 역시 동작은 하질 않네요..ㅠ 말씀해주신 플러그인은 설치했으나 동작을 안하는건지 제가 사용방법을 잘 모르는건지 ㅠㅠ

    무지한 제게 친절한 답변 감사드립니다 ㅠㅠ
    • 안녕하세요? 제 블로그가 일시적으로 다운되었네요.

      이상하게 알려주신 single.php 파일의 내용이 제 컴에서는 보이지가 않네요. 아래 그림과 같이 single.php 파일을 클릭해도 내용이 없는 공백만 표시되네요. 혹시 FTP  정보를 알려주실 수 있나요?

      • 좀 전에 알려주신곳에서 관리자 로그인과 함께 ftp정보도 적어드렸습니다^^ 하단에 적힌 내용이 ftp입니다.  정말 감사드립니다

      • 제한하고자 하는 카테고리를 알려주시겠어요?
        그리고 올려주신 single.php 파일을 보니까 is_user_logged_in 코드가 사용되지 않았나요. 아마 삭제하신 것 같네요.

      • 안녕하세요?
        이제 사이트를 한 번 확인해 보시기 바랍니다.
        아마 비로그인 사용자가 웹툰의 포스트에 접근하려고 제목을 클릭하면 홈페이지로 이동하게 될 것입니다.

      • 그리고 알려주신 사이트 정보는 지금 삭제하겠습니다. 그럼, 즐거운 하루 되시기 바랍니다.

  20. 안녕하세요. 실례를 무릅쓰고 문의드립니다.

    <? php if ( !is_user_logged_in() && in_category( '카테고리 이름' ) ) {
    echo '죄송합니다. 이 글을 보려면 로그인해야 합니다';
    } else {
    the_content();
    }
    ?>
    이렇게 싱글페이지에 적용을 했더니 로그인 사용자에게는 정상적으로 보여지나 비로그인사용자에게는 모든 카테고리의 게시글이 보이지 않는 빈페이지로 표기되며, 경고메시지또한 출력되지 않아 문의드립니다.

    혹시 해결방안이 있을런지요.

    감사합니다.
    • 안녕하세요?

      아마 카테고리 이름이 잘못되었을 수도 있을 것 같습니다. 카테고리 이름을 고유 이름으로 넣거나 in_category(42) 처럼 카테고리 ID로 설정해 보시기 바랍니다. ID를 확인하는 방법은 http://www.thewordcracker.com/basic/how-to-check-post-page-and-category-id-in-wordpress/ 이 글을 참고하시기 바랍니다. (하지만 정확한 것은 소스 파일을 직접 확인해야 상황을 이해할 수 있을 것 같습니다.)

      • 안녕하세요. 말씀하신대로 ID로 입력해봐도 마찬가지로 반응을 하지 않습니다.

        혹시 불편하시겠지만 제 소스파일을 확인해주실 수 있을런지요.
        메일주소를 알려주신다면 로그인정보를 보내드리도록 하겠습니다.
      • 안녕하세요? http://www.thewordcracker.com/support-system/ 이 페이지에서 로그인 정보를 보내주시겠어요? 혹시 모르니 먼저 모든 자료와 DB를 백업해두시기 바랍니다.

      • 안녕하세요? 알려주신 정보로 접속해봤는데, single.php 파일에 내용이 없는 것으로 나오네요... 현재 Child theme을 만드셨기 때문에 수정은 Child theme에서만 하시면 되고요 Parent Theme 파일은 그대로 두시면 됩니다. (추후에 테마가 업데이트되면 Parent Theme에서 한 수정사항은 모두 사라집니다.) FTP를 통해 수정한 파일을 Child theme 폴더로 업로드해보시기 바랍니다(Parent Theme은 구매하실 때 받은 테마 파일을 두시면 되고요).

        그리고 혹시나 해서 위의 코드가 잘못되었을까 싶어서 검색해 봤는데요, 코드 자체에는 문제가 없는 것 같습니다. ( https://wordpress.org/support/topic/double-conditions-in-if-statement-pls-help 참고)

        그리고 이 방법이 어려우면 https://wordpress.org/plugins/restrict-categories/ 페이지에 나와 있는 플러그인을 한번 사용해보시기 바랍니다. 좀 오래된 플러그인이라 잘 작동할지는 모르겠지만 소스 수정이 용이하지 않는 경우에는 플러그인을 통해 해결하는 것이 차선책 같습니다.

  21. 좋은 내용 감사합니다..ㅠㅠ
    근데 특정 카테고리 제한을 single.php에 적용해 봤는데, 500에러가 뜨고 적용이 안되네요.
    알람이 뜨고 로그인 페이지로 이동하게 만들고 싶은데ㅠ 어떻게 해야될지 난감하네요..

    • 안녕하세요?
      위의 코드는 일반적인 상황에서 문제 없이 적용됩니다. 왜 500에러가 뜨는지 모르겠네요. 플러그인 등의 다른 방법을 사용해보시기 바랍니다. 그리고 500에러가 발생하는 상황에 대해서도 한번 검색해보면 좋을 듯합니다. (잠시 검색해보니 .htaccess 파일의 rewrite 규칙 때문에 자주 발생한다고도 나오네요.)

      도움이 되지 못해 죄송합니다. 즐거운 하루 되시기 바랍니다.

    • 아, 그리고 ‘죄송합니다. 이 글을 보려면 로그인해야 합니다‘에서 작은 따옴표는 영문에서 사용되는 따옴표(직선형 따옴표)가 되어야 합니다: '죄송합니다. 이 글을 보려면 로그인해야 합니다'

댓글 남기기

댓글을 입력해주세요!
이름을 입력해주세요