워드프레스 2.7 이후의 댓글 출력 환경

워드프레스 2.7 이후부터 거의 모든 댓글 출력 환경이 API화 되었다. 다른 이유보다는 계단형 댓글, 페이지로 나뉘는 댓글을 지원하기 위함이 가장 큰 게 아닌가 생각된다. 이제는 특별한 플러그인 없이도 이러한 기능들을 쓸 수 있다니 정말 반가운 일이 아닐 수 없다.

다만, 사용중인 테마가 새로운 댓글 출력 환경을 지원해야만 한다는 어쩔 수 없는 단점이 있다. 물론, 취향에 따라 자주 테마를 바꾸는 블로거들도 많지만, 본인과 같이 한번 정하면 어지간하면 테마를 바꾸지 않는 경우도 많을 것이다. 이러한 경우 욕심을 버리고 종전처럼 새로운 기능들을 제외하고 블로그를 운영한다면 문제가 되지 않겠지만, 사람의 욕심이란게 있다는걸 알면서 썪혀두기에는 좀 넘치는 경향이 있는 듯 하다.

물론 가장 권장하는 방법은, 해당 테마의 제작자에게 워드프레스 2.7의 댓글 환경을 지원해 줄 것을 요청하거나, 구글 등의 검색엔진에서 ‘테마이름 wordpress 2.7’ 등의 검색어를 통해 누군가 제작 해 놓은 패치를 찾아서 적용하는 것이다.

하지만, 부득이 한 경우나 이번 기회에 한 번 이런 작업에 도전해 보고 싶은 블로거라면 낯선 단어들과 용어들을 살짝 견뎌가면서 함께 해 봤으면 좋겠다.

아래 설명되는 내용은 HTML 이나 PHP에 익숙하지 않은 사람에겐 다소 어려운 것들이겠지만, 이번 기회에 하나 하나 차분히 살펴본다면, 앞으로 워드프레스를 백배 활용하는데 큰 도움이 될거라 자부한다.

우선, Octto씨가 이미 잘 정리해 둔 글이 있으니, 영어에 익숙한 분들께서는 참고하시길 바란다.

새로운 템플릿 함수들

  • post_password_required: 비밀번호가 걸린 글인지 확인하는 함수
  • wp_list_comments: 댓글들을 출력하는 함수
  • have_comments: 글에 댓글이 존재하는지 확인하는 함수
  • previous_comments_link: 페이지로 나뉜 댓글을 이동하는 함수(이전 페이지)
  • next_comments_link페이지로 나뉜 댓글을 이동하는 함수(다음 페이지)
  • paginate_comments_links페이지로 나뉜 댓글을 이동하는 함수(페이지 번호 표시)
  • comments_open: 댓글기능이 열려있는지 확인하는 함수
  • comment_form_title: 전체 댓글 목록의 제목을 표시하는 함수
  • comment_reply_link: 댓글에 답글을 달기위한 링크 출력 함수
  • cancel_comment_reply_link: 답글을 취소하기 위한 링크
  • comment_id_fields

기존의 댓글 템플릿 파일(comments.php)을 수정해서 사용하는 방법도 있지만, 워낙에 여러 부분에 손을 대야 하므로, 워드프레스 버전에 따라 템플릿 파일을 다르게 불러오도록 하는 과정이 필요하다.

기존 파일을 백업하고, 워드프레스 2.7 이전버전에 대응하도록 함

  1. 테마 폴더 안에 있는 comments.php 파일의 복사본을 만들어 legacy.comments.php 라고 이름을 지정해 둔다.

    과정 보기 »

    copy-comments-phppaste-comments-phprename-file-to-legacy-comments

  2. 테마폴더 안에 function.php 파일을 열어본다. (없다면 새로 만들면 된다)

    새로 만드는 과정 »

    1. 테마폴더에 새로운 텍스트 파일을 하나 만들고,
      create-new-text-file
    2. 파일명을 functions.php 로 바꾼다.
      rename-file-to-functions-php
    3. 파일을 메모장 또는 텍스트 에디터로 열어 아래와 같이 PHP 언어를 사용 할 준비를 해 둔다.
      ready-for-php
  3. 파일의 맨 위 또는 맨 아래에 아래와 같은 내용을 추가해 둔다.
  4. 이제, 수정하기 이전의 파일은 legacy.comments.php 로 저장되어있고, 앞으로 수정할 파일은 comments.php 파일이 된다.

이제 준비는 완료되었으니, 실질적인 수정작업을 시작하기로 하며, 과정은 다음 페이지에서 계속 이어진다.

19 thoughts on “워드프레스 2.7 이후의 댓글 출력 환경”

  1. 안녕하세요. 방명록을 만들려고 올려주신 내용에 따라 테마를 수정하고 있는데 질문이 있어서요.
    이런 쪽은 전혀 몰라서 무작정 따라하고 있는데요. 제가 쓰는 테마에는 위 같은 부분이 없어요..말씀하신 wp_list_comments 기능이 빠져있는건지..
    저처럼 아예 없을 경우에는 뭘 빼고 어느 부분에 저 구문을 넣어야 하나요?

    1. 아 제가 말한건 3번째 페이지 부분부터에요. 1,2페이지는 잘 따라했는데 3페이지 부분부터는 comments.php 파일에 똑같은 부분이 없네요..

      1. 처음 접하시는 분들은 수정하기가 참 난감하실 거에요… 저 부분하고 똑같은 부분을 찾는게 아니라, 비슷한 부분을 찾아야 합니다. comments.php 파일의 내용중에 wp_list_comments가 없다면, 새로운 댓글 환경을 지원하지 않을 가능성이 큽니다. 테마 제작자에게 새로운 댓글 환경을 지원해 줄거을 요청해 보는것이 오히려 빠른 해결책이 되지 않을까 싶네요.

        1. 비슷한 부분이 찾아서 수정했어요. 그런데 관리자 모드에서 코멘트 부분에서 reply로 답 댓글 다는거 맞는거죠? 그렇게 달았는데 코멘트 밑에 답글로 달리지 않고 그냥 다른 코멘트들이랑 똑같이 맨 밑에 새로운 코멘트로 추가되네요..뭐가 잘못된걸까요?

          1. 밑에 nipple님 코멘트를 봤는데 관리자 모드에서 다는게 아니고 방명록 페이지 자체에 reply 링크가 생기는 건가요? 저도 안생겼는데..해결 방법이 궁금합니다. ㅠㅠ

          2. 사용하시는 테마가 reply 링크를 제공하지 않는 듯 하네요. 기본 테마로 바꿔보시면 reply 링크가 보이실 거에요 ^^

  2. 다른 질문입니다. ^.^;

    reply버튼을 누르면 여기처럼 textarea가 #respond타겟으로 이동해야 하는데
    제 블로그에서는 해당 타겟이 없는지 페이지를 리로드하네요..

    혹시 해결방법이 없을까요?

      1. 아, 그 부분을 빠트렸군요. 조만간 2부를 쓰거나 이 글에 내용 추가할께요.

        우선은 테마의 header.php 파일에서 < ?php wp_head(); ?> 부분의 위쪽에 아래처럼 코드를 삽입하면 됩니다.

        [code lang=”php”]
        < ?php if ( is_singular() ) wp_enqueue_script( 'comment-reply' ); ?>
        < ?php wp_head(); ?>
        [/code]

  3. 전 왜 reply 링크가 안생길까요..; 2.71인데…이상하네요.
    브라이언 플러그인은 이제 지워도 괜찮은 건가요?

Comments are closed.