GeneratePress 테마 댓글 섹션 레이아웃 변경하기

  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기

GeneratePress 테마의 댓글 섹션은 다른 테마와 비슷한 방법으로 커스텀이 가능합니다. 이 글에서는 이 블로그에 설치되어 있는 워드프레스 테마인 GeneratePress의 댓글 섹션을 변경하는 방법에 대해 간략히 설명하겠습니다.

GeneratePress 테마 댓글 섹션 레이아웃 변경하기

워드프레스 GeneratePress 테마 댓글 섹션 레이아웃 변경하는 방법

워드프레스 GeneratePress 테마 댓글 폼을 커스텀하는 몇 가지 방법에 대해 살펴보겠습니다.

댓글 입력 폼에서 이메일 필드와 웹사이트 필드 제거하기

댓글 입력 시 최소한의 정보를 입력하도록 하면 이론상 방문자들이 댓글을 달 가능성이 높아질 것입니다. 하지만 실제로는 큰 영향을 미치지 않는 것 같습니다. 댓글 폼을 간결하게 만들고 싶은 경우 댓글 양식에서 이메일 필드와 웹사이트 필드 제거를 고려해볼 수 있습니다.

GeneratePress 테마에서 이메일 필드를 없애기 위해서는 먼저 이메일 필드가 필수 필드로 설정된 것을 해제해야 합니다. 설정 > 토론에서 '댓글을 쓴 사람의 이름과 이메일을 꼭 남겨야 합니다' 옵션의 체크를 해제합니다.

워드프레스 댓글 이메일 필드 없애기

그런 다음 FTP로 (웹호스팅) 서버에 접속하여 차일드 테마 내의 함수 파일(functions.php)에 다음 코드를 추가합니다.

// 이메일 필드와 웹사이트 필드 제거하기
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']);
    unset($fields['email']);
    return $fields;
}

참고로 이 방법을 사용하면 방문자가 이름을 입력하지 않아도 댓글이 등록될 것입니다. 이를 방지하기 위해 다음 코드 스니펫을 테마 함수 파일에 추가하도록 합니다. (아래 코드는 GeneratePress 테마에서 테스트를 하지 않았지만 잘 작동할 것입니다.)

// 이름 필드를 필수로 만들기
// To make the Name field a required field
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');

이름 입력란과 이메일 입력란을 한 라인에 표시되도록 하기

댓글의 이름 필드와 이메일 필드가 PC 화면에서 한 라인에 표시되도록 하고 싶은 경우 다음과 같은 코드 스니펫을 차일드 테마의 함수 파일에 추가하도록 합니다.

// GeneratePress 테마에서 이름 필드와 이메일 필드를 같은 라인에 표시되도록 하기
// To make the Name and email box appear on the same line
@media (min-width: 769px) {
    .comment-form #author, 
    .comment-form #email {
        width: 48%;
        float: left;
    }

    .comment-form #email {
        float: right;
    }

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

그러면 데스크톱에서 접속 시 이 블로그에서와 같이 댓글 섹션의 이름 (Name) 입력란과 이메일 (E-mail) 입력란이 같은 라인에 표시됩니다.

워드프레스 GeneratePress 테마 - 이름과 이메일 필드를 한 라인에 표시하기

Name, E-mail, Website Placeholder 변경하기

워드프레스 댓글 플레이스홀더 문구 변경하기

댓글 입력란에 기본적으로 표시되는 Name, Email, Website 플레이스홀더 문구를 변경하고 싶은 경우 다음과 같은 코드 스니펫을 테마 함수 파일에 입력할 수 있습니다.

// 이름, 이메일, 웹사이트 Placeholder 변경하기
// Change the Name, Email and Website placehodlers in GeneratePress
add_filter( 'comment_form_default_fields', 'tu_filter_comment_fields', 20 );
function tu_filter_comment_fields( $fields ) {
    $commenter = wp_get_current_commenter();

    $fields['author'] = '<label for="author" class="screen-reader-text">' . esc_html__( 'Name', 'generatepress' ) . '</label><input placeholder="NEW NAME HERE *" id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" />';

    $fields['email'] = '<label for="email" class="screen-reader-text">' . esc_html__( 'Email', 'generatepress' ) . '</label><input placeholder="NEW EMAIL HERE *" id="email" name="email" type="email" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30" />';

    $fields['url'] = '<label for="url" class="screen-reader-text">' . esc_html__( 'Website', 'generatepress' ) . '</label><input placeholder="NEW WEBSITE HERE" id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" />';


    return $fields;
}

웹사이트 부분은 잘 작동할지 모르겠습니다. 혹시 제대로 작동하지 않으면 url 부분 대신 다음 라인으로 대체하면 웹사이트 필드가 제거됩니다.

unset( $fields['url'] );

다른 방법으로 테마 파일을 직접 수정하는 것도 가능하지만, 테마가 업데이트되면 수정 사항이 사라지므로 바람직하지는 않습니다. /wp-content/themes/generatepress/inc/structure/comments.php 파일에서 직접 해당 문구를 변경할 수 있습니다.

'Post Comment' 문구 변경하기

댓글 내용을 입력한 후에 댓글을 제출할 때 사용되는 제출 버튼이 GeneratePress 테마에서는 "Post Comment"로 되어 있습니다. 이 문구를 변경하려면 다음과 같은 코드를 테마 함수 파일에 추가하도록 합니다.

// Change Default Post Comment Text
// 기본 "Post Comment" 텍스트 변경하기
add_filter( 'generate_post_comment', 'mj_generate_post_comment' );
function mj_generate_post_comment() {
    return 'Send Comment &#10230;';
}

Send Comment... 부분을 적절히 변경하도록 합니다(예: '댓글 등록').

마치며

이상으로 GeneratePress 테마에서 댓글 섹션을 변경하는 몇 가지 예를 살펴보았습니다. 댓글 폼을 보다 정교하게 수정하고 싶은 경우 테마 폴더 내의 comments.php 파일을 수정할 수 있습니다. 이 파일을 수정하려면 먼저 차일드 테마를 만들어 작업하시기 바랍니다.

  1. 차일드 테마를 만듭니다.
  2. FTP를 통해 부모 테마 폴더 아래의 comments.php 파일을 PC로 다운로드한 다음, 다운로드한 파일을 (웹호스팅 서버의) 차일드 테마 폴더로 업로드합니다.
  3. 차일드 테마 폴더 아래의 comments.php 파일을 원하는 대로 수정합니다.

그리고 CSS를 사용하여 댓글 섹션 내의 필드나 텍스트 크기, 컬러, 배경색 등을 변경할 수 있습니다.

참고



6 개 댓글

    • 감사합니다~

      저는 comments.php 파일을 조금 수정하여 사용하고 있습니다.ㅎ

      비가 계속 내리네요. 빗길 조심하시기 바랍니다.

      응답
  1. 일전에 남겨주신 GeneratePress 의 ResentPost 코드가 정상적인 작동을 안하는거 같은데 혹시 아직도 사용중이신가요?

    응답
      • https://www.thewordcracker.com/intermediate/show-related-posts-in-wordpress/

        당시 2017년 글이기는 하지만 해당 글을 참고하여 만들려고했으나 실패했습니다.

      • 해당 글에 제시된 코드로도 가능할 것 같습니다.

        GeneratePress에서는 Elements 모듈을 사용하여 후크로 포스트 본문 아래에 관련 글 리스트를 표시할 수 있을 것입니다.

        https://www.thewordcracker.com/intermediate/generatepress-%ED%85%8C%EB%A7%88-%ED%9B%84%ED%81%AC-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/

        코드로 직접 만드는 방법도 있지만, GeneratePress 테마에서는 연관 글을 표시하는 플러그인을 사용하는 것이 간편합니다. 다음 글을 참고해보세요.

        https://avada.co.kr/themes/generatepress-%ED%85%8C%EB%A7%88%EC%97%90-%EA%B4%80%EB%A0%A8-%EA%B8%80-%ED%91%9C%EC%8B%9C/