워드프레스 댓글: 이름과 댓글 입력 필드만 남기기

이 블로그의 댓글 섹션은 현재 닉네임과 댓글 입력 필드만 표시하도록 하였습니다. 이메일 필드와 웹사이트 필드를 제거하고 이름과 댓글 입력란만 표시되도록 하는 방법에 대하여 이전 글에서 설명한 적이 있습니다. 시간이 지나면서 해당 방법으로 잘 안 된다고 하시는 사용자들이 계셔서 최신 워드프레스 버전에서 다시 테스트하여 정리해 보았습니다.

GeneratePress 테마를 기준으로 설명되었지만 다른 테마에서도 잘 작동할 것입니다. CSS 코드는 테마에 따라 조금씩 다를 수 있지만 기본적인 CSS를 이해하고 있다면 쉽게 응용이 가능합니다. 잘 작동하지 않는 경우 댓글을 통해 사용하는 테마 이름을 알려주시면 체크해 드리겠습니다.

워드프레스 댓글: 이름과 댓글 입력 필드만 남기기

GeneratePress 테마의 경우 댓글 섹션이 다음과 같이 표시됩니다.

뉴스페이퍼 등 일부 테마에서는 웹사이트 필드를 제거하는 옵션을 제공하기도 합니다.

이름 필드와 댓글 입력 필드만 남기도 Email 필드와 Website 필드, 그리고 "다음 번 댓글 작성을 위해 이 브라우저에 이름, 이메일, 그리고 웹사이트를 저장합니다" 체크박스를 제거하는 방법에 대하여 살펴보겠습니다.

1 설정 » 토론으로 이동합니다.

기타 댓글 설정 섹션에서 다음 두 옵션의 체크를 해제합니다.

  1. 댓글 글쓴이는 이름과 이메일을 입력해야 합니다.
  2. 댓글 쿠키 선택 체크박스를 보여서 댓글 작성자 쿠키 설정 허용

1번 옵션의 체크를 해제하면 댓글 작성자 필드와 이메일 필드를 선택 필드로 바뀌게 됩니다. 즉, 이름과 이메일 필드에 내용을 입력하지 않아도 댓글이 제출되게 됩니다.

2번 옵션의 체크를 해제하면 "다음 번 댓글 작성을 위해 이 브라우저에 이름..." 체크박스가 표시되지 않습니다. 이 필드를 댓글 쿠키라고 하며 EU(유럽연합)의 개인정보보호 법령인 GDPR 준수를 위해 이 기능이 워드프레스에 추가되었습니다. 유럽 방문자가 없다면 이 댓글 쿠키는 제거해도 됩니다.

2 모양 » 사용자 정의 » 추가 CSS로 이동하여 다음 CSS 코드를 추가합니다.

.comment-form #email, .comment-form #url {
    display: none !important;
}

.comment-form #author {
    width: 100%;
}

이 코드를 추가하면 이메일 필드와 웹사이트 필드가 표시되지 않도록 숨겨지고 이름 필드의 크기가 100%로 설정됩니다.

상기 코드는 GeneratePress 테마를 기준으로 한 것입니다.

Astra 테마OceanWP 테마의 경우 다음과 같은 CSS 코드를 사용하여 이메일 필드와 URL 필드를 숨길 수 있습니다.

.comment-form-email, .comment-form-url {
    display: none;
}

.comment-form-author {
    width: 100%;
}

Divi 테마도 살펴보니 위의 코드로 가능하네요. 아마 대부분의 테마에서 위의 코드가 작동할 것 같습니다.

베스트셀링 테마인 아바다 (Avada) 테마의 다음과 같은 코드로 테스트해보시기 바랍니다.

#comment-input #email, #comment-input #url {
    display: none;
}

#comment-input #author {
    width: 100%;
}

CSS 코드를 알 수 없는 경우 사용하는 테마를 아래 댓글을 통해 알려주시면 체크해드리겠습니다.

3 차일드 테마의 함수 파일(functions.php)에 다음 코드를 추가합니다.

// Make the Name field required
function require_comment_name($commentdata) {
    if (empty($commentdata['comment_author'])) {
        wp_die('Error: please enter a valid name.');
    }
    return $commentdata;
}
add_filter('preprocess_comment', 'require_comment_name');

위의 코드는 이름 필드를 필수로 설정하는 기능을 합니다. 이름 필드를 입력하지 않으면 'Error: please enter a valid name'이 표시됩니다. 이 문구는 한글로 바꾸어도 됩니다.

참고로 다음 코드를 추가하면 이전에는 이메일 필드와 웹사이트 필드가 제거되었습니다. 하지만 최신 워드프레스 버전과 GP 테마에서 테스트하니 이메일 필드와 웹사이트 필드가 사라지지 않았습니다. (그래서 위에서 CSS를 사용하여 이 두 필드를 숨기는 방법을 사용했습니다.)

function customize_comment_form_fields($fields) {
    // Remove Website field
    if (isset($fields['url'])) {
        unset($fields['url']);
    }

    // Remove Email field
    if (isset($fields['email'])) {
        unset($fields['email']);
    }

    return $fields;
}
add_filter('comment_form_default_fields', 'customize_comment_form_fields');

위와 같이 워드프레스 토론 페이지를 설정하고 코드를 추가하면 다음과 같이 이름 필드와 댓글 입력란만 표시됩니다.

필수 필드를 입력하지 않으면 댓글 등록 버튼 비활성화하기

이 워드프레스 블로그에서는 기본적으로 위에 제시된 방법으로 이메일 필드와 웹사이트 필드를 제거했습니다.

이름 필드와 댓글 입력란의 경우 내용을 입력하지 않으면 댓글 제출 버튼이 비활성화되도록 만들었습니다.

댓글에 한 두 단어를 입력하거나 너무 길이가 긴 댓글이 올라오는 경우가 많아서 저는 댓글 길이를 5단어 이상 250단어 이하로 제한했습니다. 댓글 길이가 너무 짧으면 경고가 표시되도록 했습니다.

댓글 작성자 닉네임이 입력되고 5~250단어 사이의 내용이 댓글 입력란에 입력되면 댓글 등록 버튼이 활성화됩니다.

이런 방식으로 댓글 입력 시스템이 작동하는 방법은 다음 글에서 다루고 있으니 참고하시기 바랍니다.

참고

6개 댓글

댓글 남기기

  1. 혹시 댓글창에 NAME 으로 되어있는 닉네임부분을 월드님처럼 "닉네임" 으로 바꿀려면 어떻게 해야할까요? comments.php에 입력을 해야하는지 아니면 functions.php에 입력해야하는지 style.css에 입력해야하는지 모르겠습니다 ㅠ

    답글
    • 컬러맥을 사용하시는군요. 컬러맥 테마는 일반적인 워드프레스 사용법과 다르기 때문에 초보자가 이용하기에는 어려움이 있을 수 있을 것 같습니다.

      만약 유료 버전을 고려한다면 컬러맥 유료 버전보다 뉴스페이퍼와 같은 테마를 선택하는 것이 정신 건강(?)에 더 좋을 수 있습니다. 뉴스페이퍼는 사용자가 많기 때문에 궁금한 점이 있을 경우 다른 사용자들의 도움을 받을 가능성이 높을 것입니다.

      답글
    • Kadence 테마를 살펴보니 아스트라 테마에 사용하는 CSS 코드로 이메일 필드와 웹사이트 필드를 숨길 수 있는 것 같습니다. 잘 안 되는 경우 알려주시면 시간이 날 때 Kadence 테마에서도 테스트하여 결과를 공유하겠습니다.

      답글