MovableTypeからWordPressに固定リンク込みで完璧に移行する方法

MovableType(MT)からWordPress(WP)に乗り換えようとするときに、必ずネックになってくるのが記事データ移行の問題。
MovableTypeのエクスポートデータをWordPressにインポートできるんだけど、そのときに移行できるのは、記事本文・コメントのみ。パーマリンク(URL)、カテゴリー、タグといった付帯情報は一切引き継ぐことができない。
MT・WPそれぞれのソースコードを修正してパーマリンクを引き継がせるなんてこともできるけど(下記リンク参照)、MT・WPがバージョンアップされ、元のソースコード自体が変わってしまうと、どこを修正していいのか分からなくなってしまうのが欠点。
MovableTypeからWordPressへのURL込みの移行方法Wiki@browncat.org
WPからWPへ、WXR(WordPress eXtended RSS)形式のデータを使ってブログ内容を引継ぎできるのであれば、MTでもWXR形式でインポートデータを書き出せばいいんじゃね?
ということで作ったのが、下記のテンプレートデータです。これで、記事本文、コメント、トラックバック、カテゴリー、タグといった移行に必要なデータを全て移行することができます。(MT4.1→WP2.6で確認しましたが、MT4.Xなら大丈夫だと思います。ただ、MT3.0以前だとタグ機能が実装されていないこともあり、そこが引っかかるかもしれない。もしそこで引っかかるようでしたら、29行目から32行目までを削除してもう一度チャレンジしてみてください)
mt2wp.zip
使い方
(1)上のZIPファイルをダウンロード、解凍すると、「mt2wp.txt」というファイルが出てきます。これをMovableTypeの管理画面(ダッシュボード)の「デザイン」>「テンプレート」で「インデックステンプレートを作成」します。
その新しいテンプレートの本文に先ほど解凍したテキストファイルの内容をコピペし、適当なテンプレート名・出力ファイル名(仮に、export.xmlとします)を付け、保存・再構築します。
(2)無事に再構築が終わると、サイトのトップディレクトリに、export.xmlが生成されていますので、それをFTPでダウンロードします。
(3)移行元のMTと移行先のWPでパーマリンク設定が異なっていると、パーマリンクが引き継げないので、WPのパーマリンク設定をMTに揃えます。というわけで、WordPressにログインし、ダッシュボードから「管理」>「パーマリンク設定」で変更します。
MTのアーカイブ設定が「yyyy/mm/entry-basename.nhml」となっていれば、WPでは「/%year%/%monthnum%/%postname%.html」となります。
ちなみに当ブログは「/archives/<$MTEntryBasename$>.php」となっていましたので、WPでは「/archives/%postname%.php」としました。
(※:MT 2.xでは、basenameというテンプレートタグがなかったので、<$MTEntrykeyword$>を記事URLに流用するテクニックもありましたが、そういったテクニックを使っている方は、44行目の<$MTEntryBasename$>の箇所を<$MTEntrykeyword$>に変えてください)
(4)WPにexport.xmlを読み込ませます。「管理」>「インポート」に移動すると、インポート用のデータ形式を選択するページが表示されますので、「WordPress」を選択してください。
そして「export.xml」を読み込ませると移行は完了です。記事内容・コメント・トラックバック・カテゴリー・タグが移行されているはずです。(※MTの概要は、WPの抜粋に移行します)
既知の問題
タイトルで「完璧」と言っている割に、若干の問題もあります。
(1)MTで未公開になっている記事はエクスポートされません。
・対処法1:すべての記事を一旦公開状態にして書き出し、移行後に、未公開記事だった記事を未公開設定にする。一旦公開状態になってしまうので、ちょっと気持ち悪いですがインポートとエクスポートが一回で終わります。
・対処法2:一旦、通常の方法で、MT→WPへ記事を移行する。んで、未公開の記事だけを残し、後の記事は全て削除。その後、あらためて、上記の方法を使って記事をインポート。二度手間にはなるものの、こちらの方がオススメ。
(2)カスタムフィールドのインポートには対応していません。ベータ版のテンプレートデータにはカスタムフィールドの移行も含まれていたのですが、いまいち、WXR形式のカスタムフィールドの項目の仕様がよく分からなかったので削除しました。
(3)カテゴリーの名称
カテゴリー自体は移行していますが、URLまでは引き継げていませんので、移行後に、手作業でカテゴリーのURLを修正します。

コメント

  1. […] 続いて参考にしたページがこちら。 http://netscrander.com/archives/mt_to_wp.php […]

  2. […] MovableTypeからWordPressに完璧に移行する方法 […]

  3. […] や、そんな面倒なことをしなくても、僕がやったやり方(NetScrander ≫ MovableTypeからWordPressに固定リンク込みで完璧に移行する方法)でいいじゃん。こっちだとカテゴリーもタグも引き継 […]

  4. キミコ より:

    有益な方法のご紹介ありがとうございました!
    うまくいかないところがあったので、修正して使っています。
    コピペしてさくっと成功する完成度で、このタイミングで公開すれば、注目を集めることができるかもしれませんよ~~。
    書籍も楽しみにしています。

タイトルとURLをコピーしました