워드프레스 댓글 폼을 간결하게 만들기

4

워드프레스 블로그를 운영하시는 분이 방문자들이 이메일 필드 때문에 불편하여 댓글을 달지 않는다고 하네요. 저도 다른 사이트에 이메일 등의 정보를 입력해야 하는 번거로움 때문에 댓글을 잘 달지 않게 되는 것 같습니다.

그러면 이메일 필드를 없애면 댓글이 많이 달릴까요? 기대만큼 증가할 것 같지는 않지만, 댓글 폼에 입력하는 정보를 최소화하면 약간의 댓글 증가는 기대할 수 있을 것 같습니다. 현재 워드프레스 댓글 폼에서는 다음과 같이 이름 필드, 이메일 필드, 웹사이트 필드와 'Save my name, email, and website in this browser for the next time I comment' 체크박스가 표시됩니다.

워드프레스 댓글 폼

이메일 필드와 웹사이트 필드를 제거하는 방법을 재작년에 이 블로그에서 다룬 적이 있고 'Save my name, email, and website in this browser for the next time I comment' 문구를 제거하는 방법은 며칠 전에 설명한 적이 있습니다.

방문자들이 댓글을 달면서 '웹사이트' 필드에 실제 웹사이트 주소를 입력하면 SEO(검색엔진최적화)에도 도움이 될 것입니다. 특히 방문자가 많은 사이트에 댓글을 달면서 내 홈페이지 URL을 입력하면 다른 방문자들이 댓글을 읽으면서 홈페이지 주소를 클릭하여 내 사이트로 유입될 가능성이 있습니다.

댓글 폼에서 댓글 입력란과 이름을 제외한 모든 필드를 제거하고 싶은 경우 먼저 워드프레스 관리자 페이지에서 설정 > 토론으로 이동하여 "댓글을 쓴 사람의 이름과 이메일을 꼭 남겨야 합니다"의 체크를 해제하도록 합니다.

워드프레스 댓글 이름 필드와 이메일 필드 선택 필드로 바꾸기

그런 다음 테마의 함수 파일(차일드 테마 사용)에 다음 코드를 추가합니다.

// 'Save my name, email, and website in this browser for the next time I comment' 문구 제거
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;
}

// 웹사이트 필드 제거, Remove Website field
function disable_website_field($fields)
{
if(isset($fields['url']))
unset($fields['url']);
return $fields;
}

add_filter('comment_form_default_fields', 'disable_website_field');

// 이메일 필드 제거, Remove Email field
function my_remove_email_field_from_comment_form($fields) {
if(isset($fields['email'])) unset($fields['email']);
return $fields;
}
add_filter('comment_form_default_fields', 'my_remove_email_field_from_comment_form');

그러면 다음 그림과 같이 댓글 입력 필드와 이름 필드만 남게 됩니다.

워드프레스 댓글 폼

이 상태에서 테스트해보면 댓글 시스템이 잘 작동하지만, 문제는 이름 필드가 필수가 아니기 때문에 방문자가 이름을 입력하지 않고 "입력"을 클릭해도 댓글이 정상적으로 게시된다는 점입니다. 이 문제를 해결하기 위해 다음 코드를 테마 함수 파일에 추가하여 이름 필드를 필수 필드로 만들도록 합니다.

// 이름 필드를 필수로 만들기, Make the Name field required
function require_comment_name($fields) {
 
if ($fields['comment_author'] == '')
wp_die('Error: please enter a valid name.');
 
return $fields;
}
add_filter('preprocess_comment', 'require_comment_name');

이제 테스트하면 원하는 대로 댓글 시스템이 작동할 것입니다. Newspaper 테마에서 테스트해보니 잘 작동하는 것을 확인했습니다. 참고로 위의 코드를 넣는 대신 테마 폴더 내의 댓글 템플릿 파일(comments.php)에서 직접 해당 필드들을 삭제하는 것도 가능합니다. 이 경우 차일드 테마를 만들어서 작업하면 추후 테마가 업데이트되더라도 변경 사항이 유지됩니다.

Newspaper 테마의 경우 최근 업데이트되면서 테마의 모든 기능이 tagDiv Composer로 이동되었습니다.

그러므로 Newspaper에서는 차일드 테마가 제대로 작동하지 않고, tagDiv Composer 플러그인 폴더 내의 파일을 찾아서 수정을 해야 합니다. 가령 댓글 템플릿 파일의 경로는 /wp-content/plugins/td-composer/legacy/common/wp_booster/comments.php입니다. 이 파일에서 다음 코드를 찾아서 제거하면 댓글 입력란과 이메일 필드만 남게 됩니다.

		        'email'  =>

			        '<div class="comment-form-input-wrap td-form-email">

			            <input class="" id="email" name="email" placeholder="' . __td('Email:', TD_THEME_NAME) . ( $req ? '*' : '' ) . '" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30" ' . $aria_req . ' />

			            <div class="td-warning-email-error">' . __td('You have entered an incorrect email address!', TD_THEME_NAME) . '</div>

			            <div class="td-warning-email">' . __td('Please enter your email address here', TD_THEME_NAME) . '</div>

			         </div>',



		        'url' =>

			        '<div class="comment-form-input-wrap td-form-url">

			            <input class="" id="url" name="url" placeholder="' . __td('Website:', TD_THEME_NAME) . '" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" />

                     </div>',

                '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">' . __td( 'Save my name, email, and website in this browser for the next time I comment.' ) . '</label></p>',

개인적으로 추후에 참고하기 위해 코드와 파일 경로를 여기에 기재합니다. 이 방법을 사용하면 tagDiv Composer 플러그인이 업데이트될 때마다 이 부분을 찾아서 제거해주어야 하므로 바람직하지는 않습니다.


테스트로 이 블로그의 댓글 폼에서 이메일 필드와 웹사이트 필드, 그리고 댓글 쿠키 문구("Save my name...")를 모두 제거해보았습니다. 이러한 필드를 제거해도 댓글이 평소보다 더 많이 달리지는 않네요. 유의미한 결과를 얻으려면 일정 기간 관찰해야겠지만 단기적으로는 차이가 없었습니다.

제 블로그에는 댓글이 제법 달리는 편이지만 최근 들어 눈에 띄게 줄어들고 있습니다. 아무 댓글이라도 많은 댓글 부탁드립니다. (하지만 악플은 지양해주시면 감사하겠습니다.ㅎㅎ)

참고:

4 개 댓글

  1. 워드프레스 블로그 시작한 지 얼마 되지 않은 신입입니다. 블로그 둘러보니 읽을만한 글이 정말 많네요!
    본문 기능도 굉장히 흥미롭지만, 긍정적인 결과가 따라오지 못했다니 아쉽네요 ㅠㅠ

    확실히 댓글 남길 분은 이메일 폼이 있건 없건 크게 구애받지 않고 댓글을 남기나 봅니다.

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

      댓글 폼에서 이메일 필드를 없애면 보다 수월하게 댓글을 남길 수 있어 댓글이 증가할 것으로 예상되었지만, 실제로는 그렇지 않았습니다.ㅠㅠ

      워드프레스와 관련하여 궁금한 점이 있다면 댓글로 남겨주시기 바랍니다. 그러면 아는 범위에서 답변드리도록 노력하겠습니다.

  2. 저도 이렇게 간편하게 해 보고 싶지만 아무래도 링크가 있으면 더 자주 찾게 될 것 같아요..
    편하기는 이것이 훨씬 나을 것 같습니다..

    • 조금 더 테스트해보고 댓글이 유의미하게 증가하지 않으면 다시 이전 상태로 되돌릴 계획입니다.

      현재로서는 이메일 필드와 웹사이트 필드를 없앴다고 해서 댓글이 증가하지는 않네요.

댓글 남기기

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