[워드프레스] 특정 사용자/사용자 역할이 로그인하지 못하도록 차단하기

특정 사용자 계정 비활성화하기

워드프레스에서 특정 사용자가 로그인하지 못하도록 비활성화해야 하는 상황이 발생할 수 있습니다. 그런 경우 Disable Users 플러그인을 사용할 수 있습니다. 이 플러그인을 사용하면 특정 사용자 계정만 비활성화시켜 로그인이 되지 않도록 할 수 있습니다.

이 플러그인을 설치하고 활성화하면 각 사용자 프로필 맨 아래에 해당 사용자 계정을 비활성화시킬 수 있는 옵션이 추가됩니다. 워드프레스 관리자 페이지에서 사용자 > 모든 사용자를 클릭하고 차단할 사용자를 클릭하여 프로필 편집 페이지로 들어갑니다.

Disable Users in WordPress - 워드프레스에서 사용자 계정 비활성화

위의 그림과 같이 "Disable User Account" 옆에 있는 체크박스를 체크하고 "사용자 업데이트"를 클릭하면 해당 사용자의 계정이 비활성화되고 로그인 시도 시 다음 그림과 같이 "Account disabled"라는 메시지가 표시됩니다.

Account Disabled - WordPress

Disable Users 플러그인이 잘 작동하지 않으면 Account Locker Lite라는 플러그인도 있습니다. 이 플러그인을 사용해보시기 바랍니다.

참고: 특정 회원 유형(역할)의 사용자가 스스로 탈퇴할 수 있는 옵션을 제공하려면 Delete Me라는 플러그인을 사용할 수 있습니다. 자세한 내용은 이 글을 참고해보세요.

사용자 역할 내의 모든 사용자 계정 차단하기

위의 방법은 개별 사용자 계정을 잠금 처리(차단)할 때 유용합니다. 만약 차단할 사용자가 엄청 많다면 사용자 역할별로 차단하는 것을 고려하는 것이 더 효과적일 것입니다. 이 경우 다음과 같은 코드를 사용하여 사용자 역할(회원 그룹)별로 차단할 수 있습니다. 다음 코드를 테마의 함수 파일에 추가하도록 합니다.

// 구독자 그룹 로그인 차단하기
function site_maintenance() {
if ( current_user_can('subscriber') ) {

$logout_url = wp_login_url().'?mode=maintainance';
wp_logout();
wp_redirect( $logout_url, 302 );
exit;
}
}
add_action('get_header', 'site_maintenance');

// CUSTOM LOGIN MESSAGES
function my_login_message() {

if( $_GET['mode'] == 'maintainance' ){
$message = '<p class="message"><b>사이트 유지 보수 중.</b></p>';
return $message;
}

}
add_filter('login_message', 'my_login_message');
// Source: http://wordpress.stackexchange.com

새로운 사용자 역할을 만들려면 User Role Editor라는 플러그인을 사용할 수 있습니다.

위의 코드를 적용하면 '구독자' 역할의 사용자가 로그인을 시도하면 다음 그림과 같이 메시지가 출력됩니다.

Block Users per role in WordPress - 워드프레스에서 사용자 역할별 사용자 차단하기

이 방법을 사용하면 굳이 사용자 계정을 삭제하지 않더라도 특정 회원 등급(역할) 내의 모든 사용자가 로그인되지 않도록 차단할 수 있습니다.

참고:

일부 글에 제휴 링크가 포함될 수 있으며 파트너스 활동으로 일정액의 수수료를 받을 수 있습니다.

4개 댓글

    1. 안녕하세요?

      IP 주소를 알고 있다면 다음 글에서 제시하는 방법을 사용해보시기 바랍니다.
      https://www.thewordcracker.com/miscellaneous/block-ip-addresses-or-domains-with-htaccess/

      네이버 블로그라면 네이버에다 신고하시면 될 것 같습니다.
      티스토리 블로그라면 티스토리에다 신고할 수 있을 것 같네요.
      그렇지 않고 일반 웹호스팅을 이용한다면 해당 웹호스팅 업체에다 연락하여 문제를 제기해볼 수 있습니다.
      https://support.google.com/legal/troubleshooter/1114905 페이지에서 구글에 저작권 침해로 신고하면 구글에서 해당 사이트 운영자에게 경고장을 보냅니다.
      (https://www.thewordcracker.com/scribblings/%EC%9D%B8%ED%84%B0%EB%84%B7-%EB%AA%85%EC%98%88%ED%9B%BC%EC%86%90-%EA%B8%80%EC%97%90-%EC%96%B4%EB%96%BB%EA%B2%8C-%EB%8C%80%EC%B2%98%ED%95%98%EB%8A%94-%EA%B2%83%EC%9D%B4-%EC%A2%8B%EC%9D%84%EA%B9%8C/ 참고)

    2. 네이버 블로건데 댓글도 달지 않아 저로선 ip주소도 알수 없네요. 메일 주소는 있는데 다음메일이에요. ip 주소를 알아내는 다른 방법 있을까요?

댓글 남기기

* 이메일 주소는 공개되지 않습니다.