워드프레스에서 내가 보낸 트랙백 주소 표시

전에 처음으로 어떤 블로그의 글에 대한 글을 쓰기 위해서 트래백을 한 적이 있다.
내가 쓴 글은 인터렉션 디자인을 해야 위대한 디자이너인가 인데, 다시 읽어 보니 어떤 블로그의 글에 대한 것인지를 알 수가 없었다.

다른 사람의 블로그 글에 의견을 달 때, 간단한 것이면 바로 코멘트에 남겨도 되지만, 조금 긴 글을 달거나 내 글을 물리적으로 내 블로그에 넣기 위해서는 내 블로그에 글을 쓰고, 원래 글의 트래백 주소로 핑을 하게 된다.

내가 핑을 한 원래 글에는 자동으로 코멘트 처럼 내 글이 달린다. 그림은 내 블로그거 아니라 내가 트랙백 핑을 한 블로거에 달린 내 블로그의 제목과 요약이다.

그런데, 정작 내 블로그의 글에는 원래 이 글을 쓰게 된 글의 주소가 안보인다. 물론, 워드프레스에서 자동으로 안보인다는 것을 말한다. 내가 쓴 글을 자세히 읽어 보니 맨 마지막에 원래 글의 주소를 적어 놓았다는 것을 발견했다.

내 기억엔 워드프레스에서 글을 쓸 때 Send trackbacks to 에 원래 글의 URL를 기록했었는데, 글을 수정 모드로 들어가니 그 URL을 찾을 수가 없었다.
Send trackbacks to

그래서 워드프세스의 디비에서 wp_posts 테이블을 보았더니, pinged 라는 필드에 그 URL이 저장되어 있었다.

오케이,

그럼, 글 보여주는 템플리트인 single.php 에서 보여주면 되겠네.

트랙백 핑을 한 것에 대한 정확한 뜻을 몰라서 그냥 글의 상단에 Pinged URL 이라고 표시했다. 트랙백을 한 것을 내가 글을 쓸 때 핑을 한 URL이라고 생각했기 때문이다.
pinged url

구현 방법은 간단하다.트래백 핑을 하기 위해서는 글을 쓸때 트래백 핑을 한 URL을 입력하게 되어 있고, 그 URL 은 pinged 라는 필드에 저장되어 있다.

따라서 사용하는 템플리트의 single.php 를 열어서 원하는 곳에 아래과 같이 표시하면 원래 트랙백을 한 URL을 표시할 수 있게 된다.

나는 아래와 같은 소스로 구현을 했는데, 알고 보니 여러개의 트랙백을 보낸 경우 한개의 필드에 엔터코드로 구별해서 저장하고 있었다. 그래서 아래와 같이 하면 한줄에 쭈욱 나오게 된다.

<?php // if ($post->pinged  <> ” ) echo “Trackbacked to :  <a href=$post->pinged >$post->pinged </a> <br>”; ?>

내 글에 댓글을 달아 준 절망클럽 님의 글을 가 보니 이 문제를 해결해 놓았다. 문자열 안에 있는 엔터코드를 구분자로 해서 URL을 뽑아낼 수 있다.  아래 소스 코드는  절망클럽님이 작성한 것에 css 등을 넣은 것이다.

<?php if ($post->pinged <> ”) {
$pings = ‘<p class=”postmetadata”>’.'<h4>이 글이 트랙백을 보낸 곳</h4>’. ‘ ‘;
$pings .= “<blockquote>”;
$pings .= “<ul class=related_post>”;
$already_pinged = explode(“\n”, trim($post->pinged));
foreach ($already_pinged as $pinged_url) {
if (“!” != substr($pinged_url,0,1)){
$pings .= “<li> \n\t<a href=\”$pinged_url\”>$pinged_url</a> </li>”;}
else {
$pinged_url = substr($pinged_url,1);
$pings .= “<li> \n\t<a href=\”$pinged_url\”>$pinged_url</a> </li>”;}
}
$pings .=”</ul>”;
$pings .=”</blockquote>”;
$pings .= ‘</p>’;
echo $pings;
}
?>


원래 URL의 글의 제목을 표시하고 싶었는데, 디비에 저장되어 있지 않았다. PHP로 URL을 이용해서 그 페이지의 제목을 가져올 수는 있는데, 문제는 트래백한 URL은 직접 그 글의 URL이 아니라 리다이렉트를 하기 때문에 내가 아는 방법으로은 라디이렉트한 URL의 제목을 가져올 수가 없었다. 아쉽지만 이번에는 포기하고, 시간나면 리다이렉트한 URL을 원격으로 열 수 있는지 알아봐야 겠다.

블로그 코멘트를 통한 계속적인 커뮤니티케이션 방법은? 이란 포스트에서도 다른 블로거와 코멘트를 통한 계속적인 커뮤니케이션 방법이 있었으면 좋겠다고 했는데, 트랙백을 한 글에 서로 링크를 걸어서 시스템적으로 최소한 연관성을 갖게 하지 않았나 싶다.

Related Post


  • 블로그 코멘트를 통한 계속적인 커뮤니케이션 방법은? 이란 글을 보고 저도 같은 기능을 블로그에 넣었습니다.
    보낸 트랙백 주소 표시하기.
    말씀하신 것처럼 포스트의 제목을 가져올 수 있으면 더 유용할 것 같습니다. 제 경우에는 이 부분을 수정했더니 자동 트랙백으로 보낸 트랙백 주소는 해당 포스트의 주소로 pinged_to에 저장되는데 비해 직접 입력으로 보낸 트랙백인 경우는 해당 포스트의 트랙백 주소로 저장되어서 이 부분을 통일하려고 했는데 각 블로그마다 트랙백 주소와 포스트 주소의 규칙이 일정하지 않아 해결하지 못하고 바람님의 트랙백 패치를 사용할 때 붙는 ! 를 제거하는 수준에서 머물렀습니다.

  • 블로그 코멘트를 통한 계속적인 커뮤니케이션 방법은? 이란 글을 보고 저도 같은 기능을 블로그에 넣었습니다.
    보낸 트랙백 주소 표시하기.
    말씀하신 것처럼 포스트의 제목을 가져올 수 있으면 더 유용할 것 같습니다. 제 경우에는 이 부분을 수정했더니 자동 트랙백으로 보낸 트랙백 주소는 해당 포스트의 주소로 pinged_to에 저장되는데 비해 직접 입력으로 보낸 트랙백인 경우는 해당 포스트의 트랙백 주소로 저장되어서 이 부분을 통일하려고 했는데 각 블로그마다 트랙백 주소와 포스트 주소의 규칙이 일정하지 않아 해결하지 못하고 바람님의 트랙백 패치를 사용할 때 붙는 ! 를 제거하는 수준에서 머물렀습니다.

  • 워드프레스툴 초보사용자입니다.
    제 테마에서는 single.php가 따로 없더군요,
    님의 글을 보면서 트랙백주소를 나타나게 하려는데 좀 어렵습니다.
    어떻게 해야 님처럼 트랙백 주소를 보이게 할 수 있을까요.
    부탁드립니다.

  • 워드프레스툴 초보사용자입니다.
    제 테마에서는 single.php가 따로 없더군요,
    님의 글을 보면서 트랙백주소를 나타나게 하려는데 좀 어렵습니다.
    어떻게 해야 님처럼 트랙백 주소를 보이게 할 수 있을까요.
    부탁드립니다.

  • 워드프레스에서 single.php 는 글의 내용을 보여주는 템플리트 입니다. 사용하시는 테마 디렉토리에 있습니다. 도움이 되셨길…

  • 워드프레스에서 single.php 는 글의 내용을 보여주는 템플리트 입니다. 사용하시는 테마 디렉토리에 있습니다. 도움이 되셨길…

  • Pingback: morelog.net » Blog Archive » 보낼 트랙백, 받은 트랙백 보이기()

  • Pingback: Zemna.Net()