Trackback Albirexで適用しているmsnからのトラックバック対策。見ばえの関係からデータベースをいちいち手直しして対応していたのだけれど、いくらなんでもそれでは大変。最終的に、Trackback.pmを直接いじってみることにした。
mt\lib\MT\App\Trackback.pmをエディタで開く。
231行目あたりにある以下の部分に、青文字の行を追加する。
no_utf8($tb_id, $title, $excerpt, $url, $blog_name);
# guess encoding as possible
$enc = MT::I18N::guess_encoding($excerpt.$title.$blog_name) unless $enc;
($title, $excerpt, $blog_name) = map {MT::I18N::encode_text($_,$enc,undef)} ($title, $excerpt, $blog_name);
#msn対策
if($blog_name eq ‘◆◆◆◆’){ $blog_name = ‘◇◇◇◇’; }
return $app->_response(Error=> $app->translate(“Need a Source URL (url).”))
unless $url;
この時、◆◆◆◆にはmsnのブログの「id」を、◇◇◇◇には正式なブログ名を記入する。
例えば
if($blog_name eq ‘footballhour’){ $blog_name = ‘hamaのサッカー日記’; }
のように記入する。
トラックバックを送ってくるmsnブログが複数ある場合には、「if」以下の文を必要なだけ作成して付け加えていけばよい。
スマートなやり方ではないけれど、データベースを直接いじるよりは楽だし、不安も少ないので。