[WordPress] 워드프레스에서 코멘트(댓글) 리스트를 보여주는 wp_list_comments 함수 개념 정리

워드프레스에서 테마나 플러그인을 개발하는 상황에서, 어떤 포스트에 달린 코멘트, 핑백, 트랙백을 보여주는 wp_list_comments 함수에 대해 알아봅시다.

[toc]

wp_list_comments

wp_list_comments 함수는 위에서 말한대로 어떤 포스트에 달린 코멘트, 핑백, 트랙백을 보여주는 역할을 합니다.

기본 사용 방법

wp_list_comments 의 기본 사용 방법은 아래와 같습니다.

wp_list_comments( $args, $comments );

$args 와 $comments 파라미터에 대한 상세한 내용은 아래와 같습니다. 두 파라미터 모두 선택적으로 사용할 수 있습니다(안 넣어도 된다는 의미).

$args

$args 는 array 형식으로 투입되며, wp_list_comments 가 어떻게 작동할지를 결정하는 인수입니다. 몇가지 주요한 인수에 대한 내용은 아래와 같습니다.

인수 기능 기본값
walker 사용자 정의 walker class 사용 null
max_depth 몇 단계의 대댓글까지 표시 할지 여부
style div, ol, ul 중 어떤 형식으로 표시할 것인지 ul
callback 각각의 코멘트 표시에 대한 callback 함수 null
type 어떤 종류의 코멘트를 표시 할지(all, commnet, pingback, trackback) pings 를 사용하면 pingback 과 trackback 모두 표시 all
reply_text 댓글에 대한 답근 버튼 텍스트 Reply
per_page 페이지당 몇 개의 코멘트를 표시할지
avatar_size 코멘트 작성자 프로필 사진 크기 32

이 외에 더욱 자세한 인수에 대한 내용은 아래 참고자료에서 확인할 수 있습니다. 사용자가 원하는대로 코멘트를 표시 할 수 있는 많은 옵션들이 있습니다.

$comments

$comment 파라미터는 실제로 사용자에게 표시될 코멘트를 담는 파라미터입니다. 그러나 해당 파라미터는 특별히 wp_list_comments 함수에서 지정하지 않을 경우 알아서 get_comments 함수를 이용해 값을 가져오니 사실상 굳이 넣지 않는 파라미터입니다.

wp_list_comments 예제

실전에서는 보통 아래와 같이 사용합니다.

if ( is_single() ) {
    $args = array(
        'max_depth'     =>  5,
        'style'     =>  'div',
        'type'      =>  'comment',
        'per_page'  =>  10,
    );
    wp_list_comments( $args );
}

지금 로드 중인 페이지가 개별 포스트를 보여주는 화면(is_single)이라면

  • 대댓글은 5단계까지,
  • 각 코멘트는 div 로 묶어서,
  • 핑백이나 트랙백은 제외하고 리얼 코멘트만
  • 한 페이지당 10개를

출력하라는 의미입니다.

만약 페이지에도 댓글을 허용한 상태에서 페이지에서 댓글을 보여주고 싶다면 is_page 혹은 is_singular 로 페이지에서도 코멘트가 보이도록 해주면 되겠죠?

(is_single 과 is_singular 의 차이는 이 포스트에서 확인할 수 있습니다.)

참고자료