페이지 템플릿에서 댓글을 지원하게 하기


일반적으로 워드프레스의 테마들은 페이지 템플릿에서 댓글을 지원하지 않는 경우가 많다. 일단, default 테마만 봐도 이러한 경우에 속한다.

수정(2010 /01/13): 따로 custom field(사용자 지정값)을 입력하는 방식보다는 단순히 댓글을 열거나 닫는것으로 구분하는것이 더 쉬운듯 하여 그에 맞게 글을 수정함.

물론, 워드프레스에서의 고정 페이지 개념을 생각한다면 당연한 것이겠지만, 가끔 페이지에서도 댓글 기능이 필요할 때가 있다. 방명록 페이지의 경우가 그 대표적인 예가 아닐까 한다.

아래 설명될 내용에서는 워드프레스의 Default 테마를 대상으로 할 것이며, 따로 댓글을 지원하는 페이지 템플릿을 만들기 보다는 기존의 템플릿을 수정하여 댓글을 지원하기도 하고, 안하기도 하도록 하겠다.

시작하기 전에

  • 우선, 사용중인 테마에서 댓글을 지원하는 페이지 템플릿을 이미 지원하고 있다면 애써 새로운 템플릿을 만들 필요가 없으므로 한 번 확인해 봐야 한다.
    [spoiler ‘slide”확인하는 과정 보기”숨기기’]

    • 페이지 템플릿을 선택하는 곳에 ‘w. comments’ 와 같이 댓글이 지원됨을 표시해 둔 것이 있는경우
      page-template-w-comments
    • 사용중인 테마폴더 안에 page-comments.php 등 댓글을 지원하는 냄새를 풍기는 파일이 있는 경우.
      page-tempate-w-comments-exploerer
    • 사용중인 테마폴더에 있는 page.php 파일의 내용중에 comments_template() 부분이 있는 경우.
      page-template-has-comments

    [/spoiler]

페이지 템플릿(page.php) 수정하기

  • 우선 single.php 파일을 열어 comments_template() 함수가 endwhile; 과 비교해서 어디쯤에 사용되고 있는지를 확인한다. Default 테마의 경우는 endwhile; 구문 바로 위에 표시되어 있다.
    comments_template-position
  • 이제 page.php 파일(기본 페이지 템플릿)을 열어 같은 위치에 comments_template() 함수를 넣어주면 된다.
    edit-page-template
  • 위 과정까지만 해도 페이지에서 댓글을 지원하게 되긴 하였지만, 댓글을 지원하지 않는 페이지도 만들려면 조건문을 하나 추가해 두는게 좋다. 최근 K2에서 사용하는 방식을 인용하여 해당 페이지에 댓글이 허용된다면(열려있다면) 댓글부분이 표시되도록 해준다.
    edit-page-template-w-if
  • 이제 page.php 파일을 저장하고 다시 업로드하여 덮어 씌워면 된다.

댓글을 지원하는 페이지 작성하기

  • 새 페이지를 작성하는 화면으로 이동하여, 적당한 제목과 내용을 입력 한 뒤, 글 입력창 아랫쪽에 있는 ‘토론(Discussion)’ 박스로 이동하여 댓글과 트랙백이 각각 선택되어있는지 확인한다.
    page-discussion-settings
  • 페이지에 댓글을 사용하지 않으려면 반대로 댓글과 트랙백 허용하지 않도록 체크해제하면 댓글 부가 출력되지 않는다.
  • 이제, 페이지를 저장하고 공개하면 댓글 입력창이 표시되는 페이지를 확인 할 수 있다.
    publish-guestbook-page1

3 responses to “페이지 템플릿에서 댓글을 지원하게 하기”

  1. 안녕하세여

    님 덕분에 문제점을 해결하여서 감사 드립니다

    page에 저는 댓글 지원하는게 싫어서 여러모로

    헤메 다가 결국은 님의 포스트에서 단 한번에 해결 하였습니다.

    간단히 페이지 옵션에서 조정하면 될 것을 몰라서 크게 힘들게

    방황했군요.. ㅎㅎ

    감사합니다

  2. 어제부터 워드프레스를 설치하고 이것저것 해보고 있는 초보입니다.
    많은 도움 되었습니다.
    감사합니다.
    그런데 중간에 오타가 있네요.
    page.php 파일을 수정하는 부분에서 세번째 그림에 ~~’comments’) )~~~ 가 ~~’comments’);~~~ 로 바뀌어야 할 것 같습니다.

    • 에고, 그렇네요. if 구문인데 if 가 빠져있네요^^;

      수정하는김에 조금 더 편한 방법을 적용하여 글 수정했습니다.