워드프레스 2.x.x 트래백핑 인코딩 문제 해결
가장 나은 방법 : 영팔님이 플러그인을 만들어 주셨습니다.
http://082net.com/2008/859/euckr-trackback-plugin/
위 링크의 플러그인을 사용하여 문제를 해결하는 것을 권장합니다. 이 포스트는 더이상 업데이트를 하지 않겠습니다.
-2008.8.24
Wordpress를 사용하다보면 UTF-8과 EUC-KR로 인코딩된 블로그간에 트랙백을 받거나 보낼때 글씨가 깨지게 된다. 이 hack은 다르게 인코딩된 블로그 사이의 트랙백이 깨지지 않게 하기 위한 것이다. UTF-8로 인코딩된 Wordpress 2.1 버전을 기준으로 작성되었다.
새로운 버전의 워드프레스가 나왔을 때 대처하는 요령
이 포스트에 새로운 버전에 대한 파일이 올라오지 않았을 경우 예전 버전용 파일을 업그레이드한 워드프레스에 덧씌우지 마세요. wp-trackback.php 파일과 comment.php 파일만 예전 버전이므로 제대로 작동할리 만무할뿐 아니라 치명적인 오류를 유발할 수 있습니다. 새버전의 파일에서 포스트의 내용에 나온 부분만 수동으로 고치는 방법만이 안전합니다. 이 포스트의 소스를 Copy해서 에디터에 Paste 할 경우에 작은따옴표(’)를 수정하셔야 합니다. mbstring 모듈 사용자는 wp-trackback.php 파일의 $charset에 EUC-KR을 추가함으로써 간단히 받는 트랙백 문제를 해결할 수 있습니다.
다운로드
Wordpress 1.5.x용 : 링크
Wordpress 2.0.x용 : 링크
Wordpress 2.1.0용 : 다운
Wordpress 2.1.3용 : 다운
Wordpress 2.2용 : 다운
Wordpress 2.2.1용 : 다운
Wordpress 2.2.2용 : 다운
Wordpress 2.3부터 2.3.3용 : 다운
Wordpress 2.5용 : 다운
Wordpress 2.5.1용 : 다운
다른 해결방법
영팔님이 약간의 hack이 필요한 플러그인을 만드셨습니다.
워드프레스 EUC-KR 트랙백 플러그인(HACK)
정태영님이 받는 트랙백용 플러그인을 만드셨습니다.
Korean Trackback Plugin
사용방법
받는 트랙백은 자동으로 변환된다.
보내는 트랙백은 트랙백 받는 블로그가 EUC-KR을 사용할 경우 트랙백 보내는 주소 앞에 !를 붙여서 사용한다.
Send trackbacks to: 의 트랙백 주소 적는 곳에 !http://트랙백주소 를 넣는다.
예) !http://www.windlike.net/blog/236/trackback/
2.0용 버전과 다르게 데이타베이스에는 !가 제거된 트랙백 주소만이 남는다.
같은 인코딩일 경우 그냥 트랙백 주소만 적는다. !를 붙여서 인코딩을 변환하면 오히려 깨진다.
예) http://www.windlike.net/blog/236/trackback/
상대의 인코딩을 알아내는 방법은 상대의 블로그를 열고 브라우져의 보기 - 인코딩 메뉴를 보면 알 수 있다.
[참고] 예전 버전들이 !를 제거하지 않고 데이터베이스에 기록한 이유는 인코딩을 잘못 선택하여 트랙백을 보냈을때 다시 보낼 수 있게 하기 위함이다. 즉 already pinged에 다르게 기록되므로 다시 보내는데 문제가 없다. 이번부터는 UTF-8 블로그에 !를 붙여서 보낸 경우 다시 보낼수 없지만(이미 트랙백을 보낸 주소이기 때문에) EUC-KR인 블로그에 !로 붙이지 않고 트랙백을 보냈다면 다시 !를 붙여서 보낼수 있다.(!를 붙이더라도 저장은 주소만 되므로 다시 보낼때 !가 붙은 주소를 다른 주소로 인식한다) 이 경우 already pinged에 같은 주소가 두개 존재하게 된다.
다른 문제점으로는 에디트 화면의 Trackbacks 폼에 !가 남아있다. PHP와 웹프로그래밍에 대한 이해가 부족하여 해결하지 못하였다. !를 지우고 다시 Save를 하면 사라진다.
주의사항
적용대상 :
- PHP 4.0.6 이상
- mbstring 모듈이나 iconv 모듈 둘 중 하나가 설치되어 있어야 함
확인방법 :
- 직접 호스팅 업체에 문의
- 다음 코드를 에디터를 이용하여 test.php로 저장한 후 브라우져에서 실행한다(미리 작성된 파일 : 다운)
<?php
echo 'PHP version: ' . phpversion() . '<br />';
if ( function_exists('mb_convert_encoding') ) echo 'mbstring OK!<br />';
else echo 'mbstring fail..<br />';
if ( function_exists('iconv') ) echo 'iconv OK!<br />';
else echo 'iconv fail..<br />';
?>
mbstring OK! 가 나오면 mbstring 모듈을 이용할 수 있다(둘 다 OK일 경우 이방법을 권장)
iconv OK! 가 나오면 iconv 모듈을 이용할 수 있다(mbstring fail 일 경우 이 방법으로 한다)
둘다 fail이면 호스팅 업체에서 둘 중 하나를 설치해 줄때까지 불가능하다
라이센스
Wordpress가 GPL이기 때문에 이 hack 역시 GPL을 따른다. 수정 및 재배포 모두 가능함.
지금까지 도움주신 분들
아거님, 입명이님, H.Moon님, BluedSnow님, 지윤님, UNFGroup님, unfusion님, 영팔님
받는 트랙백핑 문제 해결(mbstring)
/wp-trackback.php를 열어 $charset에 EUC-KR을 추가한다
$charset = 'ASCII, UTF-8, EUC-KR, ISO-8859-1, JIS, EUC-JP, SJIS’;
mbstring 모듈을 사용할 수 있을 경우 직접 수정해서 사용하면 편리하다.
받는 트랙백핑 문제 해결(iconv)
/wp-trackback.php를 열어
if ( function_exists('mb_convert_encoding') ) {
$title = mb_convert_encoding($title, get_settings('blog_charset'), $charset);
$excerpt = mb_convert_encoding($excerpt, get_settings('blog_charset'), $charset);
$blog_name = mb_convert_encoding($blog_name, get_settings('blog_charset'), $charset);
}
아래에 다음을 추가한다
elseif ( function_exists('iconv') ) {
if ( !seems_utf8($title) )
$title = iconv('EUC-KR', 'UTF-8', $title);
if ( !seems_utf8($excerpt) )
$excerpt = iconv('EUC-KR', 'UTF-8', $excerpt);
if ( !seems_utf8($blog_name) )
$blog_name = iconv('EUC-KR', 'UTF-8', $blog_name);
}
보내는 트랙백핑 문제 해결
/wp-includes/comment.php를 열어 trackback 함수를 찾는다
function trackback($trackback_url, $title, $excerpt, $ID) {
global $wpdb, $wp_version;
if ( empty($trackback_url) )
return;
$title = urlencode($title);
$excerpt = urlencode($excerpt);
$blog_name = urlencode(get_option(’blogname’));
$tb_url = $trackback_url;
를 $blog_name = get_option(’blogname’);이 두부분으로 나뉘어 수정되는것 주의하며 아래와 같이 바꾼다
function trackback($trackback_url, $title, $excerpt, $ID) {
global $wpdb, $wp_version;
if ( empty($trackback_url) )
return;
$blog_name = get_option(’blogname’);
if ( $trackback_url[0] == ‘!’ ) {
$trackback_url = substr($trackback_url, 1);
if ( function_exists(’mb_convert_encoding’) ) {
$title = mb_convert_encoding($title, ‘EUC-KR’, ‘UTF-8′);
$excerpt = mb_convert_encoding($excerpt, ‘EUC-KR’, ‘UTF-8′);
$blog_name = mb_convert_encoding($blog_name, ‘EUC-KR’, ‘UTF-8′);
} elseif ( function_exists(’iconv’) ) {
$title = iconv(’UTF-8′, ‘EUC-KR’, $title);
$excerpt = iconv(’UTF-8′, ‘EUC-KR’, $excerpt);
$blog_name = iconv(’UTF-8′, ‘EUC-KR’, $blog_name);
}
}
$title = urlencode($title);
$excerpt = urlencode($excerpt);
$blog_name = urlencode($blog_name);
$tb_url = $trackback_url;








January 24th, 2007 at 10:05 pm
웰컴 백~
아 업글을 해야하나 ㅠ.ㅠ
January 24th, 2007 at 10:29 pm
감사합니다. ^^
January 25th, 2007 at 1:07 am
고맙습니다
2.1 은 섣불리 못 하고 기다리고 있었는데
확실히 많이 달라졌다는걸 느끼게되네요;
January 25th, 2007 at 3:58 am
2.1의 경우 지금의 디비는 mySQL 버전이 안맞아서 업그레이드 못하고 있습니다
호스팅 업체에서 UTF-8 디비를 따로 제공해 주고 있기는 해서 2.1을 새로 깔아봤는데 더 깔끔해진 느낌이더군요..
그나저나 호스팅도 기간 다되서 이번에 그냥 호스팅을 옮길지 그냥 디비만 옮겨서 사용할지 고민중입니다
그리고 모두들 반가워요^^
February 10th, 2007 at 9:41 pm
[WP] 워드프레스 1.5.x , 2.0.x 에서 2.1로 업그레이드하기…
어제(2007년 2월 9일) WordPress Version 2.1 “Ella”로 업그레이드를 했습니다. 업그레이드를 하면서 Wordpress Codex의 UPGRAGDING WORDPRESS를 한글화 해 봤습니다. 2007년 2월 9일 Wordpress Codex의 UPGRAGDING W…
April 19th, 2007 at 2:35 pm
좋은 패치에 감사드립니다. 이번에 2.1.3으로 업그레이드하려는데,
위의 2.1.0 용 패치를 그대로 적용해도 되는지 알고싶습니다.
좋은 하루되세요.
April 20th, 2007 at 12:20 am
요즘 좀 바빠서 2.1.3이 나온지도 몰랐네요^^
2.1.3용 패치를 업로드 했습니다
May 17th, 2007 at 3:43 pm
워드프레스가 2.2를 발표하였습니다.
2.2로 올리신 분은 본문에 있는 파일을 다운로드하지 마시고 이후에 올라오는 2.2용 파일을 설치하시기 바랍니다. 2.2에 2.1 파일을 설치하시면 문제가 발생할 수 있습니다.
May 21st, 2007 at 2:57 am
지금에야 확인했습니다. comment.php는 변동없고 wp-trackback.php가 오랜만에 바뀌었군요..
큰 변동은 없습니다.
직접 수정하는 방법도 동일하기 때문에 2.1.x용이라는 제목이지만 2.2도 따로 글 작성하지 않고 같이 올립니다
June 22nd, 2007 at 4:04 am
2.2.1 이 등장하였습니다. comment.php 파일이 변경된듯하여 2.2 버전용을 사용할 수 없습니다. 시간되시면 업데이트 부탁드리고 싶습니다. 감사합니다. 게다가 2.2.1 이 그냥 마이너 업글이 아니라 시큐리티픽스를 포함한다길래 더욱…
June 22nd, 2007 at 7:27 pm
워드프레스 2.2.1 업그레이드…
올라왔길래 업그레이드 해 버렸습니다. 크게 바뀐 점은 없는 것 같고, 여전히 한글 관련 UTF-8 설정을 해 줘야하므로 업그레이드 하실 분들은 Wind-like Blog와 Wordpress KOREAN 포럼을 참고하시면 됩…..
August 10th, 2007 at 10:25 pm
워드프레스 2.2.2하고 2.0.11이 등장했습니다.
새 버전 적용하신분은 이 포스트에서 수동 적용부분을 이용하세요.
파일 다운로드하시면 안됩니다.
August 12th, 2007 at 10:22 am
알려주셔서 감사합니다
2.2.2용 수정해서 올렸습니다^^
September 30th, 2007 at 12:26 am
감사합니다~ 홈이 예뻐졌네요^^
September 30th, 2007 at 5:47 am
테마를 바꾸었어요
전에는 직접 만든 테마였는데 T.T
아무튼 지금이 블로그와 더 잘 맞는거 같아요^^
January 3rd, 2008 at 5:05 pm
덕분에, 트랙백핑 인코딩 문제를 해결했습니다. 유익한 정보를 편리하고 쉽게 얻을 수 있었습니다. 고맙습니다. ^^ 새해 좋은 일들이 함께하기를 바랍니다.
January 3rd, 2008 at 7:22 pm
재홍님도 좋은일 가득하길^^
January 6th, 2008 at 1:47 pm
새해 복 많이 받으세요
January 7th, 2008 at 8:23 pm
찾아갔더니 방명록이 없네요^^
ethar님도 새해 복 많이 받으세요
August 6th, 2008 at 12:03 am
워드프레스 2.6버전으로 새로 블로그를 구축하는데 도움이 되었습니다.
감사합니다.~~
August 24th, 2008 at 3:15 am
도움이 되었다니 다행입니다.
다시 업그레이드를 하신다면 영팔님의 플러그인을 사용하는 것이 훨씬 편할 듯 합니다.
즐거운 블로깅 하세요^^