티스토리, 다음뷰와의 트랙백 송수신 문제

스팸이나 해킹등의 ‘나쁜 짓’ 들을 효과적으로 막아주는 워드프레스 플러그인 ‘bad-behavior’를 사용중이라면, 티스토리(tistory)에서 보내는 트랙백이 제대로 받아지지 않으며, 다음뷰(Daum View)에 트랙백을 통해 글을 보낼 때 오류가 발생하게 된다.

두 경우 모두 막히는 원인은 bad-behavior 에서 지정한 ‘일반적인‘ 접속 규격 중 요청된 헤더에 ‘Accept’ 요소가 빠져있기 때문이라는…

daumview-trackback-block-log

Continue reading “티스토리, 다음뷰와의 트랙백 송수신 문제”

워드프레스 2.8.4로의 업그레이드

미루고 미뤄오던 블로그 업그레이드를 단행하려 한다.

‘앞으로는 꾸준히 블로깅 해야지!’ 다짐을 도대체 몇번이나 하는건지…

한 줄 블로깅이라도 하려고 Twitter 에도 가입은 했는데…-_-;

어쨓든, 갑작스레 오류가 툭툭 튀어나도더라도 양해 해 주세요;-)

워드프레스 2.7에서 댓글과 트랙백을 분리하여 출력

얼마전 등록한 워드프레스 2.7 이후의 댓글 출력 환경글에서 나아가 좀 더 입맛에 맞는 댓글 출력 환경을 제공하는 몇가지 방법을 소개해 보려 한다.

관련 글

  1. 워드프레스 2.7 이후의 댓글 환경 첫번째
  2. 댓글과 트랙백(핑백)의 분리(현재 글)
  3. 댓글 페이지 탐색을 번호로 표시하기(준비중)
  4. Rely(응답) 링크 자바스크립트 적용(준비중)

댓글과 트랙백의 분리

아직은 구현하는데 불편함이 있어 일반 이용자 보다는 테마제작자에게 그 기능을 활용 할 것을 제안하고 있다는 느낌을 주고 있는 기능이 있는데, 그 중 개인적으로 관심이 가는 것은 댓글과 트랙백(핑백)을 나눠주는 기능이다.

wp_list_comments() 함수를 살펴본 적이 있다면 알 수 있듯이, 함수 자체에서도 일반 댓글과 트랙백 중 원하는 것만 출력해 줄 수 있는 ‘type’ 이라는 설정변수를 가지고 있다.

또한, 댓글 템플릿을 불러오는 comments_template() 함수에서도 댓글을 종류별로 분리할 것인지를 지정하는 설정변수가 존재한다.

comments.php 파일 수정

우선 지난 글에서 댓글 목록 출력부분을 2.7에 맞게 수정하였다면 아래와 같을 것이다.

이 목록에서는 우선 댓글만 출력하기로 하고 아래와 같이 type 변수를 추가한다. 테마에 따라서 기본적으로 다른 설정 변수가 있을 수도 있으나.

이제 그 아래 또는 위 중 원하는 곳에 트랙백(핑백)의 목록을 출력하는 내용을 추가하면된다. 참고로, 핑백과 트랙백 또한 분리하여 출력 할 수 있지만 여기서는 두가지를 함께 출력하기로 하자. (핑백: type=pingback, 트랙백: type=trackback, 핑백+트랙백: type=pings)

'ol'의 클래스(class)를 지정할 때 댓글 목록과 트랙백(핑백) 목록을 똑같이 출력하려면 댓글과 같이 class="commentlist" 라고 지정하면 되지만, 이와 다르게 출력하려면 class="pinglist" 와 같이 구분하여 줄 필요가 있다.

여기서 생각해 봐야 할 문제가 생긴다. 보통은 if (have_comments()) 조건을 통해서 댓글이 존재하는지 확인하고 없다면 ‘No comments(댓글이 없습니다)’ 등의 문구를 표현하는데, 댓글과 트랙백(핑백)을 분리해 놓았으니, 각각에 내용물이 있는지를 또 확인해 줘야만 한다는 것이다.

예를들어 해당 글에 댓글은 없고 트랙백만 존재한다면 댓글 목록 부분은 HTML 에러를 발생하면서 목록을 감싸주는 태그만 덩럴 남아있게 되는 것이다.

이 문제를 해결하기 위해서, 댓글 목록 출력 부분과 트랙백(핑백)목록 출력 부분을 아래와 같이 조건을 붙여 감싸준다.

여기까지만 해도 일단, 댓글과 트랙백(핑백)이 분리되어 표시되긴 하지만, 아직은 살짝 모자란 감이 있는 듯 하다. 우선, 댓글은 등록자가 사람이고? 트랙백(핑백)은 등록자가 어떤 사람이 등록한 이 되기 때문에, 댓글 등록자의 이름 부분이 상대적으로 굉장히 길어지는 경우도 많고, 내용 또한 그러하다.

트랙백(핑백) 목록 출력 방식 변경

wp_list_comments() 함수에서는 목록의 출력을 좀 더 유연하게 하기 위하여 callback, end-callback 설정 변수를 제공하고 있다. 이 변수에 자신이 등록한 함수의 이름을 등록하면, 목록내의 개별 댓글의 출력 방식을 자신의 함수로 대체 할 수 있게된다.

우선 개별 트랙백(핑백)의 출력 내용이 간단하게 아래와 같다고 가정해 보자.

pinglist-kiss-theme-082net

사용중인 테마폴더에서 functions.php파일을 열어(없다면 새로 한 만들면 된다.) 맨 아래에(또는 원하는 곳에) 아래와 같은 새로운 함수를 하나 추가한다.
(함수 이름은 입맛에 맞게 지정해 주면 됨)

이제, wp_list_comments 함수에 자신이 등록한 함수를 callback 변수에 넣어주면 된다.

좀 더 자신의 입맛에 맞게 바꾸려면 워드프레스 댓글 템플릿 함수 페이지를 참고해서 도전해 보세요.

Advanced Spoiler 플러그인

기존의 Ajax-Spoiler 플러그인의 이름을 Advanced-Spoiler 로 바꾸었다. AJAX 가 뭔지도 제대로 알지 못하던 때에 만든 플러그인이라, 무심코 붙인 이름이었는데 아무래도 그 기능에 있어서 오해를 불러일으키는 경우가 계속 발생할 듯 해서 큰 마음을 먹고 바꾸게 되었다.

이름만 바뀐건 아니고, 몇가지 기능을 추가하고 설정 페이지를 만들어 두기도 했다.
Continue reading “Advanced Spoiler 플러그인”