워드프레스를 운영하고 어느정도 유의미한 트래픽이 발생하게 되면 같이 늘어나는 것이 스팸 댓글입니다. 그래서 댓글 자체를 차단하는 경우도 있는데 이는 이 사이트의 운영 컨셉 과 맞지 않아 논외로 하는데 스팸이 문제긴 합니다.
그럼 이제 다른 방안을 찾아야 하는데 댓글 섹션의 웹사이트 필드는 스팸성 댓글의 주 타깃이 되기 때문에 이 부분을 댓글 섹션에서 제외하는 것으로 가닥을 잡았습니다.
이름 필드는 식별을 위해 남겨 두어야 하고 이메일 필드는 메일 서버가 세팅되어 있다면 메일이 자동으로 발송 되고 상황에 따라 이메일로 직접 답변을 줄 수 있기 때문에 활용도가 있습니다.
그래서 오늘은 워드프레스의 댓글 섹션에서 웹사이트 필드 와 쿠키 체크 박스와 문구를 제거하는 방법에 대해서 알아 봅니다.
튜토리얼 환경 : Edge, 워드프레스 6.02
댓글 웹사이트 필드 제거
테마파일 수정으로 댓글 섹션에서 웹사이필드를 제거할 수 있습니다.
참고: 테마 파일 수정은 차일드 테마를 설치 후 적용합니다. 차일드 테마를 만드는 방법은 차일드 테마 만들기에서 확인하세요.
- shell 을 이용해 서버에 직접 접속하거나 FTP 또는 관리자 페이지의 테마 > 외모 메뉴의 테마 파일 편집기 (1) 로 이동한 뒤 function.php 파일 (2) 의 아래 쪽에 아래 후크를 추가합니다.
//댓글 웹사이트 필드 제거
add_action( 'after_setup_theme', 'tu_add_comment_url_filter' );
function tu_add_comment_url_filter() {
add_filter( 'comment_form_default_fields', 'tu_disable_comment_url', 20 );
}
function tu_disable_comment_url($fields) {
unset($fields['url']);
return $fields;
}
- 위와 같이 댓글 섹션에 위치하던 웹사이트 필드가 바로 제거되어 보이지 않게 되었습니다. 캐시 플러그인을 사용 중이라면 캐시를 초기화해야 합니다.
쿠키 사용 동의 체크
웹 사이트 필드를 제거하더라도 바로 하단에 위치한 다음 번 댓글 작성을 위해 이 브라우저에 이름, 이메일, 그리고 웹사이트를 저장합니다. 라고 하는 체크 박스가 그대로 존재하고 해당 멘트에 웹사이트 라는 내용이 존재 합니다. 해당 문구를 찾아 수정하거나 동의 문구 자체를 완전히 제거 할 수 있습니다.
문구 수정
쿠키 동의 문구를 유지하고 싶은 경우 내용을 수정해 웹 사이트 문구를 제외할 수 있습니다.
아래 후크를 function.php 파일에 추가하면 위와 같이 문구에서 웹 사이트 라는 단어가 제외됩니다. 보여지는 문구를 다르게 지정하고 싶은 경우 아래 스크립트의 <label>
태그를 수정합니다.
//댓글 쿠키 동의 문구 수정
add_filter( 'comment_form_default_fields', 'tu_filter_comment_fields', 20 );
function tu_filter_comment_fields( $fields ) {
$commenter = wp_get_current_commenter();
$consent = empty( $commenter['comment_author_email'] ) ? '' : ' checked="checked"';
$fields['cookies'] = '<p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes"' . $consent . ' />' . '<label for="wp-comment-cookies-consent"> 다음 번 댓글 작성을 위해 이 브라우저에 이름, 이메일을 저장합니다.</label></p>';
return $fields;
}
문구 제거
쿠키 동의 문구가 불필요한 경우 비활성화 스크립트를 통해 제거할 수 있습니다.
아래 후크를 function.php 파일에 추가하면 위와 같이 쿠키 동의 문구가 제거됩니다.
//댓글 쿠키 동의 문구 제거
add_filter( 'comment_form_default_fields', 'tu_comment_form_hide_cookies_consent' );
function tu_comment_form_hide_cookies_consent( $fields ) {
unset( $fields['cookies'] );
return $fields;
}
마무리
이렇게, 워드프레스의 댓글 섹션에서 웹사이트 필드 와 쿠키 동의 문구를 제거하는 방법에 대해 알아 보았습니다.
개인적으로 플러그인을 많이 설치하지 않는 편 이지만 스팸 관련 플러그인은 설치 하고 싶어질 정도 였습니다. 웹 사이트 필드를 제거 해도 별 효과가 없다면 추후에는 스팸 플러그인 등 다른 방식을 시도해 봐야 겠네요.