워드프레스에서 트랙백 보낸 원글 링크 표시

최근 몇년간은  전반적으로 블로그 사용이 많이 줄어서 서로 트랙백을 쏘면서 글을 쓰는 사람들이 많아 줄었지만, 트랙백은 여전히 다른 글에 핑을 보내서 관련된 글이 있음을 알려주는 기재이다.

트랙백은 관련된 글을 여기 있다는 것을 다른 글에 알리는 기능을 하는데, 그 글에 바로 댓글을 달아도 되지만 내  블로그에 글로 덧글을 써서 여기에 글이 있다고 알려주거나, 그 글에 관련된 글이 여기 있다고 알릴때 쓰기도 한다.

고객은 항상 옳다‘ 글 처럼 보통은 어떤 글에 대한  덧글 같은 트랙백 글이라고 글을 시작하면서  쓰곤 했다

Talk with Hani 의 “고객은 항상 옳다고? 하하하” 글에 트랙백을 보내는 글입니다

 

그래서 다른 블로그 글에 트랙백을 쏘고 나서 내 글에서 원글을 표시하면  어떤 글에 대한 트랙백 글인지 알 수 있어서 좋다.  그래서 내 블로그에서는  트랙백을 보낸 글이 있으면  “이 글이 트랙백을 보낸 글” 이라고 표시를 해 왔다.

트랙백을 보낸 글 표시 하기 

trackback2

 

근데 이 트랙백을 표시한 것이 소용이 없었다. 트랙백을 보낸 주소를 표시 한 것인데, 클릭하면 원래 글이 제대로 보이지 않았다. 그래서 이상하지만 블로그 시스템 마다 다를 것 같아서 몇년 동안 그냥 두고 있었다가  오늘 고쳤다.

트랙백을 보낸 원래 글 URL 표시하기 

워드프레스 다음뷰 플러그인 을 쓰면서 trackback 을 자동으로 쏘게 되는데 그 주소가 이상하다고 했는데, subi song 님이 댓글로 trackback 를 빼면 된다고 알려주셨다.

블로그 시스템 마다 다르겠지만, 현재 국내 블로그는 네이버 블로그 , 다음블로그, 다음 티스토리,  워드프레스, 이글루스 정도 밖에 남지 않았으니 규칙을 몇개 찾아서 적용했다.

 

trackback

 

트랙백 주소에서 다음의 URL을 빼면 원글의 URL 이 된다.

  • 워드프레스: wp-trackback.php
  • 티스토리:  trackback/
  • 네이버 블로그. 이글루스, 다음 블로그: tb/

 

설치한 워드프레스의 테마의 single.php 에서 아래 소스코드를 추가 하면 된다

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

$pinged_url = str_replace(‘trackback/’, ”, $pinged_url);
$pinged_url = str_replace(‘tb/’, ”, $pinged_url);
$pinged_url = str_replace(‘wp-trackback.php’, ”, $pinged_url);

$pings .= “<li> \n\t<a href=\”$pinged_url\”>$pinged_url</a> </li>”;
}

$pings .=”</ul>”;
$pings .=”</blockquote>”;
$pings .= ‘</p>’;
echo $pings;
}
?>

 

네이버 블로그 관리자 화면에 가보니 트랙백으로 어뷰징을 하는지, 트랙백을 차단하는 하는 관리 기능이 있다.

워드프레스를 사용하면서 네이버 블로그들에 비해 트랙픽이 적어서 그런지 트랙백 어뷰징을 받아본적이 없어서 이런 기능이 아직 필요하지 않은 것 같다.  인기 없는 블로그라는 것이 이럴 때에는 좋은 것 같기도 하다.

 

Related Post


  • 제가 설치해서 이용하는 블로그에도 적용해봐야겠어요. ^^
    좋은 소스 공유 고맙습니다.