이 글에서는 워드프레스에서 댓글에 달리는 스팸을 방지하는 방법에 대해서 알아보겠습니다. 위젯을 설치하지 않고 가능하니 사이트가 느려질 염려도 없습니다. 아래 방법에 따라서 진행해 주세요.
워드프레스 댓글 스팸 방지 방법
이 방법은 제가 한 것이 아니라, 다른 블로그에서 보고 따라해서 효과가 있는 것을 확인한 다음 포스팅 하는 것입니다. 원 블로그 글을 찾을 수 없어서 출처를 남기지 못하는 점 양해 부탁드립니다.
이 방법은 한글이 포함되지 않은 댓글을 차단하는 것입니다. 대부분의 스팸글들이 영어 또는 러시아어로 적혀 있기 때문에 이 방법을 사용하면 영어, 또는 외국어만 있는 글의 등록을 방지하죠. 제가 이 코드를 넣고 약 한달 정도 테스트 해 본 결과, 이것을 뚫는 몇 개의 댓글이 있었지만, 분명 이전보다는 쾌적했고, 일일이 댓글을 휴지통에 박아넣는 일을 하지 않아서 좋았습니다.
우선 워드프레스에 접속한 다음 [디자인 > 테마 파일 편집기]에 들어갑니다.

저는 원프레스 테마를 하고 있고, 이 블로그에 적용을 하는 모습입니다. theme functions에 들어가서 맨 아래로 내려갑니다.

맨 아래에 다음과 같은 코드를 붙여넣기 해 줍니다.
add_filter( 'preprocess_comment', function( $commentdata ) {
$comment_content = $commentdata['comment_content'];
$is_spam = false;
if (! preg_match("/[\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{AC00}-\x{D7AF}]+/u", $comment_content)) { // 한글이 포함되어 있는지 체크
$is_spam = true;
}
if ( $is_spam ) {
wp_die(
'<p><strong>댓.글.등.록.실.패</strong>: 한.국.어.문.장.을.입.력.해.주.세.요.</p>',
__( 'Comment Submission Failure' ),
array(
'back_link' => true
)
);
}
return $commentdata;
}, 2 );
이렇게 아래에 붙여넣기를 해 준 다음 [적용] 버튼을 눌러주면 적용이 완료됩니다. 이 코드는 외국어로만 이루어진 댓글을 달았을 때, 한국어 문장을 입력해 달라는 메시지가 나오는 코드입니다. 글자 사이에 점이 있는 것은 자동 번역을 막기 위함입니다. 이제 챗gpt의 시대가 되어서 이게 소용 있을지 모르겠지만, 일단은 작동하는 것 같네요.

이제 외국어로 된 댓글이 거의 없는 것을 확인할 수 있을 것입니다. 가끔 뚫리기는 하는데, 그럼 그냥 수동으로 한번씩 삭제를 해 주면 됩니다.
또한 그 전에 [설정 >토론]에 들어가서 댓글을 공개하기 전에 승인을 해야한다는 항목에 선택을 해주셔야, 스팸 댓글이 달리더라도, 공개가 되지 않으니 참고해 주세요.

이상으로 워드프레스 블로그 스팸 댓글을 차단하는 방법을 알아봤습니다. 많은 분들에게 도움이 되었으면 하네요.