Movable TypeからWordPressに移行してみた。

WordPressの方が色々とカスタマイズできそうなので移行してみた。

パーマリンクを変えずに移行するのに以下のサイトが参考になった。

Satoshiさんが改善したコードを使った。

でも、出来上がったxmlを見てみるとで囲まれているリンクはちゃんとハイフンになっていたが、wp:post_nameで囲まれているところはアンダーバーになっていた。元々MTはアンダーバーでURLを生成するのが、標準だった。それがいつしかハイフンで生成するようになった。その影響かもしれない。そこでEmacsで正規表現を使って置換してやった。コマンドは以下のとおり。

C-M-% <wp:post_name>\(.*\)_\(.*\)</wp:post_name> RET <wp:post_name>\1-\2</wp:post_name>

アンダーバーが複数入っている箇所もあるので、置換できなくなるまで何回か繰り返す必要がある。

元のファイルが残っているとそちらを読み込んでしまうので、消しておこう。

カテゴリのリンクは自分て変更しなくてはならない。

WPtouch iPhone Themeというプラグインを有効にしたので、スマホでこのサイトを見たとき、見やすくなっている。

WPに変えて、なんかチャットが文字化けした。たぶん.htaccessが書き換えられたせいなんじゃないかと思う。そこでデフォルトのCharsetがUTF-8と宣言されているので、Shift_JISを使っているチャットが影響を受けたのではないか?

そこで、まず、チャットのcgiファイルとlogファイルの文字コードをUTF-8に変えた。Emacsの場合、C-x RET f utf-8-unixで変える(参照)。utf-8だけだとたぶん改行コードが変わってしまってうまくいかなかった。

そしてcgiファイル中のcharset=Shift_JISをcharset=UTF-8に変更した。これで、最初に表示される画面の文字化けは治った。

後は新たに入力されたコメントの文字コードを変換するところを変えなくてはならない。

jcodeでShift_JISに変換している部分をUTF-8に変えればいいと思ったが、jcode.plは2000/09/29に開発がストップされ、UTF-8には対応していない(歌代和正のサイトのjcode-history.html参照)。だから小飼弾が作ったJcode.pmを使うことにした。

ロリポップサーバーにはインストールされていたので、以下のように変更すればOK。

require ‘./jcode.pl’ → use Jcode;

&jcode’convert(*val,‘sjis’); → Jcode::convert(*val,‘utf8′);

別のやり方としてjacode.plを使うやり方もある。この場合は

require ‘./jcode.pl’ → require ‘./jacode.pl’

&jcode’convert(*val,‘sjis’); → &jcode’convert(*val,‘utf8′);

とすればよい。requireの部分だけjacodeで後の部分はjcodeなので注意。

ちなみにJcode.pmを作った小飼弾だが、404 Blog Not Foundというブログを書いている人だ。どっかで聞いたことがある。