워드프레스 댓글 정렬 순서 최신순으로 변경하기

워드프레스는 강력한 기능과 확장성 덕분에 전 세계적으로 많은 사이트에서 콘텐츠 관리 시스템으로 활용되고 있습니다. 이 사이트 역시 워드프레스를 기반으로 제작되었습니다. 워드프레스는 다양한 테마와 플러그인을 통해 사이트의 외관과 기능을 사용자의 요구에 맞게 조정할 수 있게 해주는 강력한 도구입니다. 워드프레스 더 알아보기

워드프레스에는 댓글 기능이 기본적으로 탑재되어 있어, 사이트 방문자들이 게시물에 대한 의견을 나누거나 질문을 하고, 사이트 운영자가 이에 답변하는 등의 소통을 가능하게 합니다. 이러한 댓글 기능은 커뮤니티를 형성하고 유저 참여를 촉진하는 데 중요한 역할을 합니다.

워드프레스-기본-댓글-정렬-방식
워드프레스 기본 댓글 정렬 방식

그러나 기본적으로 워드프레스의 댓글 정렬 순서는 댓글이 게시된 순서, 즉 가장 오래된 댓글이 먼저 나타나는 방식으로 설정되어 있습니다. 이는 대화의 흐름을 일관성 있게 유지하고, 시간 순서에 따른 컨텍스트를 보존하기 위한 것입니다.

그러나 이러한 기본 설정이 항상 최적의 선택은 아닙니다. 특히 활발한 논의가 이루어지는 글에서는 새로운 댓글이 계속 추가되고, 이에 따라 사용자가 최신 댓글을 확인하기 위해서는 페이지 하단까지 스크롤해야 하는 불편함이 발생합니다. 이런 경우, 최신 댓글이 먼저 표시되는 방식이 더 효율적일 수 있는데요. 이처럼 댓글의 기본 정렬 순서를 역순으로 변경하여 최신 댓글이 먼저 나타나도록 조정하고 싶다면 다음 과정을 진행합니다.

아래 설명은 comeinsidebox.com 에서 테스트 및 검증 후 작성 된 내용이지만 이것이 본문의 내용의 정확성이나 신뢰성에 대해 보증을 하는 것은 아니니 단순 하게 참고용으로 확인바랍니다.

튜토리얼 환경: 워드프레스 v6.4.3, Chrome

토론 설정 메뉴

워드프레스의 댓글은 토론이라는 명칭으로 번역되어지고 있는데 워드프레스 관리자 대시보드의 토론 설정을 통해서 아주 간단하게 댓글의 정렬 방식을 변경할 수 있습니다.

토론-설정-페이지-댓글-정렬-방식-옵션-수정
토론 설정 페이지 댓글 정렬 방식 옵션 수정

수정할 워드프레스의 대시보드로 접속하기 위해 본인 도메인/wp-admin 페이지로 접속합니다. 대시보드에서 좌측 탭을 설정 토론 으로 이동하고 이어지는 우측 기타 댓글 설정 옵션에서 댓글은 각 페이지의 상단에 이전 댓글이 보여야 합니다.의 값을 다음 으로 수정합니다.

변경사항-저장-클릭
변경사항 저장 클릭

위 옵션 수정 후 페이지 하단에 위치한 변경사항 저장 버튼을 클릭해 설정을 적용합니다.

iPhone 아이폰에서 MAC 주소 확인하는 방법

테마 파일 수정

위 대시 보드를 수정하는 것으로 원하는 결과를 얻을 수 없다면, 직접 테마의 함수 파일을 수정해 댓글의 현재 출력 방식을 확인하고 정렬 방식을 최신순으로 정렬할 수 있습니다.

참고: 워드프레스 테마의 함수 파일(functions.php 파일)을 수정하려면 차일드 테마를 생성 후 그 안에서 수정하는 것이 좋습니다. 이렇게 하면 원본 테마(부모 테마)의 파일을 직접 수정하지 않아도 되므로, 테마 업데이트 시 수정한 내용이 사라지는 문제를 방지할 수 있습니다.  차일드 테마 더 알아보기
테마-기능-파일-선택
테마 기능 파일 선택

대시보드의 좌측 탭을 외모 테마 파일 편집기 로 전환 한 뒤 우측 테마 파일 목록에서 테마 기능 또는 function.php 라는 이름의 파일을 선택합니다.

테마-파일-편집기에서-함수-추가
테마 파일 편집기에서 함수 추가

중앙에 위치한 편집 필드에서 아래 미리 작성해둔 스크립트를 추가 한 뒤 하단의 파일 업데이트 를 클릭하면 내용이 반영됩니다. 이 코드는 워드프레스의 댓글 정렬 순서를 오래된 순에서 최신 순으로 변경하는 역할을 하며 각각의 역할은 주석에 추가합니다. 파일 수정과 관련된 내용이 더 알고 싶다면 워드프레스에서 테마 함수 파일 수정하는 방법 문서를 확인하세요.

// 댓글 정렬 최신순 변경
function reverse_comment_order($all_comments) {
    $comment_order_option = get_option('comment_order');

    if ($comment_order_option == 'asc') {
        return array_reverse($all_comments);
    }

    return $all_comments;
}

add_filter('comments_array', 'reverse_comment_order');

이 코드는 워드프레스에서 댓글의 정렬 순서를 변경하는 PHP 함수입니다. 이 함수의 이름은 reverse_comment_order이며, 이는 모든 댓글을 인자로 받습니다. 코드를 세부적으로 살펴보겠습니다.

  • function reverse_comment_order($all_comments) { ... }: 이 부분은 reverse_comment_order라는 함수를 정의하는 부분입니다. 이 함수는 $all_comments라는 매개변수를 가집니다. 이 매개변수는 워드프레스 사이트의 모든 댓글을 나타내는 배열입니다.
  • $comment_order_option = get_option(comment_order);: 이 줄에서는 워드프레스의 comment_order 옵션을 가져와 $comment_order_option 변수에 저장합니다. comment_order 옵션은 워드프레스에서 댓글의 정렬 순서를 설정하는 옵션입니다. 이 옵션의 값이 asc이면 댓글이 오름차순으로, desc이면 내림차순으로 정렬됩니다.
  • if ( $comment_order_option == asc ) { ... }: 이 조건문은 comment_order 옵션의 값이 asc인지 확인합니다. 만약 asc라면, 즉 댓글이 오름차순으로 정렬되어 있다면, 그 안의 코드가 실행됩니다.
  • return array_reverse($all_comments);: 이 부분은 $all_comments 배열을 역순으로 만들어 반환하는 코드입니다. array_reverse는 PHP의 내장 함수로, 배열의 요소 순서를 반대로 뒤집는 역할을 합니다. 따라서 이 줄을 통해 오름차순으로 정렬된 댓글이 내림차순으로 정렬되게 됩니다.
  • return $all_comments;: 만약 comment_order 옵션이 asc가 아니라면 (즉, 댓글이 이미 내림차순으로 정렬되어 있다면), $all_comments를 그대로 반환합니다. 이 경우 댓글의 순서는 변경되지 않습니다.
  • add_filter (comments_array, reverse_comment_order);: 마지막으로, add_filter 함수를 통해 comments_array 필터에 reverse_comment_order 함수를 추가합니다. 이를 통해 워드프레스가 댓글을 출력하기 전에 reverse_comment_order 함수를 호출하여 댓글의 순서를 변경하게 됩니다.

적용 결과

토론 설정 또는 테마 함수 파일을 수정 후 댓글이 어떻게 표시되는 지 결과를 확인합니다.

최근에-작성한-글이-상단에-위치
최근에 작성한 글이 상단에 위치

위 과정을 적용하면 최근에 작성한 댓글이 상단에 노출되는 것을 볼 수 있습니다.

Linux 서버에 SSH 공개키 등록하는 방법

관련 글

댓글로 남기기 어려운 내용은 Contact Form 에서 개별적으로 문의 할 수 있습니다. 해당 글과 연관 된 내용은 Copy를 이용해 현재 페이지의 주소를 복사 후 문의 폼에 입력시 보다 정확한 답을 얻을 수 있습니다.

Leave a Comment