워드프레스 댓글 제출 후 감사 / 성공 메시지 표시하기

지난 월요일에 이 워드프레스 블로그의 댓글 시스템을 Disqus에서 워드프레스 기본 댓글 시스템으로 변경했습니다. 워드프레스 기본 댓글을 사용하니 디스커스에 비해 불편한 점이 몇 가지 있네요.

Disqus는 나름대로 괜찮은 사용자 경험(UX)을 제공하는 것 같습니다.

  • 댓글 작성자가 자신의 댓글을 수정 가능
  • 자신의 댓글의 다른 사용자가 답글을 달면 이메일로 알림 전송
  • Disqus에 가입하여 로그인한 상태에서 Disqus 댓글 시스템을 이용하는 사이트에 수월하게 댓글 작성 가능
  • Disqus를 통해 사용자가 유입됨 (SEO에 유리)

하지만 Disqus에 달린 댓글은 구글에 검색이 되기는 하지만 불완전하게 노출된다고 합니다. 어떤 블로그에서는 댓글이 구글에 잘 노출되지만, 제 블로그에서는 Disqus 댓글이 구글에 전혀 노출이 되지 않았습니다.

이번에 댓글을 워드프레스 기본 댓글로 바꾸면서 며칠이 지나니 기존 댓글이 이제 구글에 잘 노출되고 있습니다. 하지만 Disqus를 비활성화해서 그런지 Disqus를 통해서는 전혀 유입이 되지 않고 있네요.

워드프레스 기본 댓글을 사용할 경우, 사이트 방문자가 많아지면 덩달아 늘어나는 불청객이 있습니다. 바로 스팸 댓글인데요. Akismet 같은 플러그인을 사용하면 효과적으로 스팸 댓글을 차단할 수 있습니다. 이 플러그인은 현재 500만 개 이상 사이트에 설치되어 사용되고 있습니다.

저는 플러그인 대신 워드프레스에서 기본적으로 제공하는 '댓글 블랙리스트' 기능을 사용하여 스팸을 걸러내고 있습니다.

하지만 스패머들이 계속 진화를 하여 완벽하게 필터링되지는 않고 있습니다. 그래도 대부분의 스팸성 댓글은 모두 휴지통으로 이동하고 있습니다.

워드프레스 스팸 댓글

스팸 댓글은 영어와 러시아어, 일본어로 주로 달리지만, 최근 들어서는 한글로 된 스팸 댓글도 늘어나고 있는 추세 같습니다.

이런 스팸 댓글 때문에 댓글을 달면 곧바로 게시되지 않고 검토(Moderation)를 거쳐서 댓글이 게시되도록 설정하고 있습니다. 댓글이 승인을 거쳐서 표시되도록 하려면 알림판 > 설정 > 토론 > 댓글이 보이기 전에 옵션의 "댓글은 수동으로 승인돼야 합니다"를 체크하면 됩니다.

워드프레스 댓글 승인

이렇게 댓글이 승인 후에 표시되도록 설정하면 댓글 작성자가 댓글을 입력한 후에 '제출'을 클릭하면 댓글이 곧바로 올라가지 않고 아무런 메시지가 표시되지 않아서 댓글이 제대로 제출되었는지 의구심이 들 수 있습니다. 그래서 어떤 분은 같은 댓글을 두 번 다는 경우도 있습니다.

이런 상황에서 댓글을 제출했을 때 감사 메시지와 함께 승인을 거쳐서 게시된다는 메시지를 표시하는 것을 고려해볼 수 있습니다.

워드프레스에서 댓글 제출 후에 감사/성공 메시지 표시하기

워드프레스에서 댓글을 작성하여 제출한 후에 사용자에게 메시지를 표시하려면 다음 코드를 사용 중인 테마의 함수 파일에 추가하도록 합니다. (가급적 자식 테마를 사용하시기 바랍니다.)

add_action( 'set_comment_cookies', function( $comment, $user ) {
setcookie( 'ta_comment_wait_approval', '1' );
}, 10, 2 );

add_action( 'init', function() {
if( $_COOKIE['ta_comment_wait_approval'] === '1' ) {
setcookie( 'ta_comment_wait_approval', null, time() - 3600, '/' );
add_action( 'comment_form_before', function() {
echo "<p id='wait_approval' style='padding-top: 40px;'><strong>댓글이 제출되었습니다. 감사합니다.</strong></p>";
});
}
});

add_filter( 'comment_post_redirect', function( $location, $comment ) {
$location = get_permalink( $comment->comment_post_ID ) . '#wait_approval';
return $location;
}, 10, 2 );
// 출처: wordpress.stackexchange

위의 코드를 차일드 테마 내의 함수 파일(functions.php)에 넣어보니 잘 작동하네요.

댓글 제출 후 성공 메시지

문구는 원하는 대로 지정하여 표시할 수 있습니다. '감사합니다'나 위의 그림과 같이 '성공적으로 전송되었습니다'와 같은 메시지를 표시하거나, 아니면 주의 사항이나 기타 정보를 함께 표시해도 될 것 같습니다.

참고로 워드프레스 기본 댓글로 바꾸면서 컴팩트한 댓글 폼을 위해 웹사이트 URL 필드를 제거했다가 다시 웹사이트 필드를 복원했습니다. 댓글을 달 때 웹사이트 URL까지 함께 기입하면 다른 사용자가 클릭하여 사이트를 방문할 수 있으므로 SEO에 도움이 될 것입니다. (슬림한 댓글 폼을 위해 댓글 내용과 이름만 기입하도록 하고 이메일 필드와 웹사이트 필드를 제거한 사이트도 본 적이 있습니다.)

업데이트 1: 이 방법을 사용할 경우 사파리 브라우저에서 댓글을 달면 동일한 댓글이 2개가 달리고 중복 멘트가 표시됩니다. 이 글에 제시된 코드가 방향을 올바르지만 사파리 브라우저에서 제대로 작동하지 않는 것 같습니다. 위의 코드를 수정하거나, 이 방법 대신 "워드프레스 댓글 제출 후 Thank you 페이지로 이동시키는 방법"에 설명된 방법을 이용해볼 수 있습니다.

업데이트 2: 내 댓글에 답글이 달리면 알림을 수신할 수 있는 옵션을 추가했습니다. 이 옵션을 추가하니 댓글 작성 폼의 크기가 지나치게 큰 것 같아서 임시방편으로 웹사이트 URL을 입력하는 필드를 제거했습니다. 당분간 테스트해보고 댓글 알림 수신 기능을 유지할지 결정하려고 합니다.

참고:

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

12개 댓글

  1. 이 글로 기본 댓글도 보완해서 쓸 수 있다는 것을 알게되었습니다.
    이제 내가 달린 댓글에 댓글이 달리고 난 뒤 알림이 오게 된다면 더욱 좋겠습니다.

    아, 그런데 댓글을 달고 나니 댓글 성공 멘트 대신에 중복멘트가 뜨는군요.

    1. 댓글을 달고 나면 다음과 같은 멘트가 표시되지 않나요?

      댓글이 성공적으로 전송되었습니다. 댓글은 검토 후에 게시됩니다. 앞서 올린 댓글에 오타나 오류가 있는 경우 다시 댓글로 달아주시고 '이전 댓글을 대체해 달라'고 명시하시면 기존 댓글은 삭제해드리겠습니다.

      1. 여기 워드님 블로그에 남긴 제 댓글에 워드님이 댓글을 다셔도 제게는 알림이 따로 오지 않아요.
        기억하고 있다가 일부러 찾아와야 알 수 있습니다.

        아까 댓글을 달았을 때 성공멘트 대신에 중복 멘트가 뜨더군요. 알려드려야 할 것 같아서요. ^^;

      1. thank you 페이지에 있는 '뒤로 가기'를 눌렀더니 댓글창에 제가 썼던 댓글이 그대로 작성중인 채로 남아있는 것 처럼 나오더군요. 댓글이 올라간 것인지 아닌지 잠깐 어리둥절 했습니다.

      2. 브라우저를 어떤 브라우저를 사용하시나요?
        제가 테스트했을 때에는 정상적으로 작동했는데요.
        그럼 '뒤로 가기' 버튼 대신 '홈으로 가기' 버튼으로 대체해야겠네요.

      3. 사파리를 사용하고 있습니다.
        그런데 아래를 보니 같은 댓글이 중복으로 달렸어요.

      4. 댓글 성공 메시지가 구글 크롬에서는 정상적으로 작동하는데, 사파리라서 이상하게 작동했던 것 같네요.
        그리고 Thank you 페이지에서도 '뒤로 가기' 버튼이 사파리에서는 제대로 작동하지 않는 것 같네요. 맥 사용자가 얼마나 될지 모르겠지만, 맥에서도 정상적으로 작동하도록 만들 방법을 알아봐야겠네요.

      5. 사파리에서 다시 한번 "뒤로 가기" 버튼을 눌러서 테스트보시겠어요?

        구글을 검색하여 사파리에서 '뒤로 가기' 버튼에 사용하는 코드를 찾아서 바꾸어 보았습니다.

        -----
        아이패드의 사파리에서 테스트해보니 정상적으로 '뒤로 가기' 버튼이 작동하네요.ㅎㅎ

댓글 남기기

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