워드프레스 댓글 폼 안내 문구 변경하기: comment_form_defaults 필터 활용 방법

워드프레스를 운영하다 보면 댓글 입력창에 표시되는 기본 안내 문구를 사이트 성격에 맞게 수정하고 싶은 경우가 있습니다. 예를 들어 “이메일 주소는 공개되지 않습니다.”라는 기본 문구에 추가 안내를 넣거나, 로그인한 사용자에게 별도의 메시지를 보여주고 싶을 수 있습니다.

이럴 때 가장 간단하고 안정적인 방법이 comment_form_defaults 필터를 사용하는 것입니다. 테마 파일을 직접 수정하지 않고도 댓글 폼의 기본 메시지를 원하는 내용으로 변경할 수 있어, 테마 업데이트에도 비교적 안전하게 유지할 수 있습니다.

comment_form_defaults 필터란?

comment_form_defaults는 워드프레스의 comment_form() 함수에서 사용하는 기본 설정값을 수정할 수 있도록 제공되는 필터입니다.

이 필터를 이용하면 댓글 폼의 다양한 요소를 변경할 수 있으며, 대표적으로 다음과 같은 항목을 수정할 수 있습니다.

  • 댓글 작성 전 안내 문구
  • 로그인 상태 안내 문구
  • 제출 버튼 텍스트
  • 댓글 입력창 제목
  • 기타 댓글 폼 기본 옵션

이번 예제에서는 댓글 작성 전 안내 문구와 로그인 상태 안내 문구를 변경하는 방법을 살펴보겠습니다.

functions.php에 코드 추가하기

테마의 functions.php 파일에 아래 코드를 추가합니다.

function fix_comment($defaults)
{
    global $post;

    $defaults['comment_notes_before'] =
        '<p class="comment-notes">
        이메일 주소는 공개되지 않습니다.
        (* 질문, 건의사항 등은 "질문게시판"을 이용해주세요)
        </p>';

    $defaults['logged_in_as'] =
        '<p class="comment-notes">' .
        wp_get_current_user()->display_name .
        '(으)로 로그인 됨.
        (* 질문, 건의사항 등은 "질문게시판"을 이용해주세요)
        </p>';

    return $defaults;
}

add_filter('comment_form_defaults', 'fix_comment');

코드를 저장한 뒤 댓글이 활성화된 게시글을 열어 보면 기본 안내 문구 대신 지정한 내용이 표시됩니다.

코드에서 변경되는 부분

comment_notes_before

$defaults['comment_notes_before']

이 항목은 댓글 입력창 위에 표시되는 안내 문구입니다.

기본적으로는 이메일 주소 공개 여부를 안내하는 내용이 출력되지만, 예제처럼 사이트 운영 정책이나 추가 안내사항을 함께 넣을 수 있습니다.

예를 들어 다음과 같은 용도로 활용할 수 있습니다.

  • 질문은 별도 게시판을 이용하도록 안내
  • 댓글 작성 규칙 안내
  • 스팸 댓글 관련 주의사항
  • 개인정보 관련 안내

사이트 방문자가 가장 먼저 보는 위치이므로, 필요한 정보를 자연스럽게 전달하기에 적합합니다.

logged_in_as

$defaults['logged_in_as']

로그인한 사용자가 댓글을 작성할 때 표시되는 안내 영역입니다.

예제에서는 현재 로그인한 사용자의 이름을 가져와 다음과 같은 형태로 출력합니다.

홍길동(으)로 로그인 됨.
(* 질문, 건의사항 등은 "질문게시판"을 이용해주세요)

여기에서 사용되는

wp_get_current_user()->display_name

은 현재 로그인한 사용자의 표시 이름(Display Name)을 가져오는 함수입니다.

실무에서 활용하기 좋은 사례

단순히 기본 문구를 바꾸는 것보다 사이트 운영 목적에 맞게 안내를 구성하면 방문자의 혼란을 줄일 수 있습니다.

예를 들어 다음과 같은 상황에서 유용합니다.

운영 목적안내 문구 예시
기술 블로그오류 신고는 문의 게시판을 이용해 주세요.
쇼핑몰주문 관련 문의는 고객센터를 이용해 주세요.
기업 홈페이지서비스 문의는 문의 양식을 이용해 주세요.
커뮤니티욕설 및 광고성 댓글은 삭제될 수 있습니다.

이처럼 댓글 영역은 단순한 입력창이 아니라, 방문자에게 운영 정책을 전달하는 중요한 접점이 될 수 있습니다.

적용 시 주의할 점

자식 테마(Child Theme) 사용 권장

functions.php를 수정할 경우 부모 테마를 직접 변경하기보다는 자식 테마의 functions.php에 추가하는 것이 좋습니다. 부모 테마를 업데이트하면 수정 내용이 사라질 수 있기 때문입니다.

HTML 작성에 주의

안내 문구에는 HTML을 사용할 수 있지만, 태그가 올바르게 닫히지 않거나 문법에 오류가 있으면 댓글 폼 레이아웃이 깨질 수 있습니다.

간단한 <p>, <strong>, <br> 정도를 사용하는 것이 유지보수 측면에서도 유리합니다.

기존 기능을 유지하도록 반환하기

필터 함수에서는 수정한 $defaults 배열을 반드시 return해야 합니다.

return $defaults;

이 부분이 빠지면 댓글 폼이 정상적으로 출력되지 않을 수 있습니다.

알아두면 좋은 점

이번 예제에서는 global $post;가 선언되어 있지만, 실제 코드에서는 $post 객체를 사용하지 않습니다. 따라서 현재 예제의 기능만 구현한다면 해당 선언은 제거해도 동작에는 영향을 주지 않습니다. 프로젝트에서 게시글 정보를 함께 활용할 계획이 아니라면 불필요한 코드는 정리하는 것이 좋습니다.

마무리

comment_form_defaults 필터는 댓글 폼을 사이트 운영 방식에 맞게 손쉽게 커스터마이징할 수 있는 유용한 기능입니다. 특히 기본 안내 문구를 수정하거나 로그인 사용자에게 맞춤형 메시지를 제공해야 하는 경우 별도의 플러그인 없이 간단한 코드만으로 구현할 수 있습니다.

작은 문구 하나를 바꾸는 작업처럼 보일 수 있지만, 방문자에게 필요한 정보를 적절한 시점에 전달하면 불필요한 문의를 줄이고 댓글 운영 정책을 자연스럽게 안내하는 데 도움이 됩니다. 사이트의 목적과 사용자 경험을 함께 고려해 댓글 폼을 구성하면 운영 효율과 사용자 만족도를 모두 높일 수 있습니다.

Similar Posts

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다