MovableTypeからWordPressへのPermalink込みの完全移行方法
2008 年 10 月 5 日 日曜日Movable TypeからWordPressへの完全移転方法をまとめました。普通にログのインポート機能を使うと、パーマリンクを引き継いでくれません。しかし今ググって出てくる情報は、大体がWordPress2.2などの古い情報で、そのままでは最新の2.6系で使うことが出来ません。(やり方は非常に参考になります。MovableTypeからWordPressへのURL込みの移行方法 - Wiki@browncat.org)

今回紹介するのは、完全版かつ最新版の修正ファイルです。
さてさて、Movable Type(MT)からWordPressに移行しようとして、最も障害になるのはパーマネントリンク(パーマリンク)の扱いです。
Movable TypeにもWordPressにも、ログのエクスポート/インポート機能があるので、一見すんなりいきそうなんですが、どちらもパーマリンクの情報を持っていない。これって致命的ですよね。今までに張られたリンクや検索エンジンのインデックスを有効に生かすためのコンセプトがパーマリンクなのに、どちらもそれに対応してないってのはどういうこと?
おそらく、ユーザーの流出を防ぐためにわざと対応してないんじゃないかともいます。携帯で言うと番号ポータビリティですよね。
しかし携帯電話と違って、Webアプリケーションなら中身を誰でもいじくれるので、Movable TypeからWordPressへの完全移転を行なう修正ファイルを作りました。
1.Movable Type側の準備
まず、Movable Type側ではエクスポートプログラム
/lib/MT/ImportExport.pm
に、タグとパーマリンクを書き出す行を追加します。
丁度540行目にある
DATE: <$MTEntryDate format=”%m/%d/%Y %I:%M:%S %p”$>
の下に
PERMALINK: <$MTEntryPermalink$>
TAGS: <$MTTagName$>
ID: <$MTEntryID$>
(kishi-r.com)
2.WordPress側の準備
まずWordPressを通常通りインストールしたら、パーマリンクの設定をMovable Typeに合わせます。
/%year%/%monthnum%/%postname%.html
こんな感じでしょうか。この辺はそれぞれのMovable Type次第ですね。
次に
mt.php.zip
このファイルを解凍して、WordPressの
/wp-admin/import/
にある同名ファイル[mt.php]と差し替えてください。
色々なサイトに書かれている情報からいいとこ取りで、記事ID、タグ、パーマネントリンクを引き継ぐ修正ファイルとなっております。
具体的には、こちら→(minorio のプログラミング・メモ)で紹介されている、Post IDを引き継いだmt.phpをベースに、
325行目
} else if ( 0 === strpos($line, "PERMALINK:") ) { $value = trim( substr($line, strlen("PERMALINK:")) ); $tmpvalue = strrchr($value,"/"); $post->post_name = substr($tmpvalue, 0, strpos($tmpvalue, "."));
こちらのパーマリンク設定を取り入れています。
3.実行
あとはMovable Typeで「エクスポート」、WordPressでMovable Type形式での「インポート」をするだけですが、画像のパスなどを変えるんだったら、インポート前にログをテキストエディタで一括置換しておくと吉です。

MT3.3の場合は左下のほうにあります
MT4.2の場合は冒頭の画像を参照してください。「ツール」→「エクスポート」です。
4.仕上げ
カテゴリーのURL、RSSフィードのURLなどの処置を忘れずに。
WordPressのプラグインで、WordPress > 404 Notifier ? WordPress Pluginsというのを入れておくと、404ヒットがあったときにメールで通知orRSSフィードでお知らせしてくれるので便利です。


