Movable Typeのブログに対してmsnブログからトラックバックを行うと、ブログ名ではなくてブログURLのid部分が表示される件。
たとえば、私の実験用のブログ「渚の実験室」(http://y-nagisa.spaces.live.com/)からTrackback Albirexにトラックバックすると、ブログ名の欄が「渚の実験室」ではなくて「y-nagisa」と表示されてしまう。
これはmsn側の仕様だからしょうがないので、こちらで何とか対策を立てるしかない。
以前はTrackback.pmを直接いじって対応していたのだけれど、これだとプログラム内に直接日本語を書き込むことになってしまって、他の部分の処理に多少の影響が出ていた(ジジイからのトラックバックがたまに文字化けする、アイアンの温泉ブログの名前が一部化ける、など)。
システムのバージョンアップのついでに、msn対策も変更してみることにした。
今回使ったのは、Regexというプラグインを使う方法。
- プラグインを所定のページからダウンロードして解凍する。
- 解凍後にできたファイルを、それぞれ指定されたディレクトリにFTPでアップロードする。
- Movable Typeのテンプレートのうち、トラックバックを表示するテンプレートの上部に、下記の記述を追加する。
<MTRegexDefine name="pattern1">s|A|B|g</MTRegexDefine>
A:msnブログのid (例:y-nagisa)
B:msnブログのブログ名 (例:渚の実験室) -
テンプレート内のトラックバック元ブログ名を表示するタグに、regex条件を書き加える。
<$MTPingBlogName regex="pattern1"$>
これで、「A」というブログ名が「B」に変換されて表示される。 -
変換したいブログ名が複数存在する場合には
<MTRegexDefine name="pattern2">s|C|D|g</MTRegexDefine>
<MTRegexDefine name="pattern3">s|E|F|g</MTRegexDefine>
・
・
<$MTPingBlogName regex="pattern1 pattern2 pattern3"$>
などのように、変換条件を書き足してゆく。
トラックバックしてくださるmsnブログの個数分だけ条件を書き足していかなければならないので、手間と言えば手間なんだけれど、システムのライブラリをいじるよりテンプレートをいじる方がずっと楽なので、当面この方式でやってみようと思う。
その他にも、
<MTRegexDefine>s|千葉ちゃん|<font color=red><strong>俺の千葉ちゃん</strong></font>|g</MTRegexDefine>
などと定義して<$MTEntryBody$>タグにregexを指定してやれば、エントリーで
「千葉ちゃん」
と書くだけで、表示の時に
「俺の千葉ちゃん」
と自動表示できるとか、使い道は多いwww