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形式でインポートデータを書き出せばいいんじゃね?
ということで作ったのが、下記のテンプレートデータです。
(追記:ソースコードはキミコさんに改良していただいたものに差し替えました。)
(2010年6月8日追記:「追記」部分のインポートがうまく作動していなかった点をSatoshiさんが改善してくれました。改善されたコードはSatoshiさんのブログにてご確認ください。→movabletypeからwordpressに移行する時のテンプレート改良版)
[xml]
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:wp="http://wordpress.org/export/1.0/"
>
<$MTPingExcerpt$>
…]]>
[/xml]
使い方
(1)上のソースコードを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に流用するテクニックもありましたが、そういったテクニックを使っている方は、<$MTEntryBasename$>の箇所を<$MTEntrykeyword$>に変えてください)
(4)WPにexport.xmlを読み込ませます。「管理」>「インポート」に移動すると、インポート用のデータ形式を選択するページが表示されますので、「WordPress」を選択してください。
そして「export.xml」を読み込ませると移行は完了です。記事内容・コメント・トラックバック・カテゴリー・タグが移行されているはずです。(※MTの概要は、WPの抜粋に移行します)
既知の問題
タイトルで「完璧」と言っている割に、若干の問題もあります。
(1)MTで未公開になっている記事はエクスポートされません。
・対処法1:すべての記事を一旦公開状態にして書き出し、移行後に、未公開記事だった記事を未公開設定にする。一旦公開状態になってしまうので、ちょっと気持ち悪いですがインポートとエクスポートが一回で終わります。
・対処法2:一旦、通常の方法で、MT→WPへ記事を移行する。んで、未公開の記事だけを残し、後の記事は全て削除。その後、あらためて、上記の方法を使って記事をインポート。二度手間にはなるものの、こちらの方がオススメ。
(2)カスタムフィールドのインポートには対応していません。ベータ版のテンプレートデータにはカスタムフィールドの移行も含まれていたのですが、いまいち、WXR形式のカスタムフィールドの項目の仕様がよく分からなかったので削除しました。
(3)カテゴリーの名称
カテゴリー自体は移行していますが、URLまでは引き継げていませんので、移行後に、手作業でカテゴリーのURLを修正します。
有益な方法のご紹介ありがとうございました!
うまくいかないところがあったので、修正して使っています。
コピペしてさくっと成功する完成度で、このタイミングで公開すれば、注目を集めることができるかもしれませんよ~~。
書籍も楽しみにしています。
はじめまして。
mt2wp.zipをダウンロードし、解凍しようとしたのですが、どうやら書庫ファイルが壊れているらしくうまく解凍できません。
こちらの環境のせいかもしれませんが、ご確認お願いします。
コメントありがとうございました。
ZIPファイルでの配布を取りやめ、ソースコードをそのまま記載しましたので、こちらをコピペしてお使いください。
こんばんわ。
早速つかわせていただきました。
しかし、MTの追記がインポートできないようです。(xmlファイルにも追記が書き込みされていないようです。)
お忙しい中失礼いたしますが、確認のほうよろしくお願いします。
MT ver3.35 ではそのままだと使えなかったのですが、以下の変更でうまくいきました。ありがとう御座います。
18.
を削除し、
19.
を
19.
>ともさん
お役に立てようで何よりです。
大変申し訳ないのですが、コメントが途中で切れてしまいました。
お手すきのときでも、切れた部分を補っていただけると助かります。
MT3を使っている方は結構多いと思いますので!
はじめまして,MTからWPの移行をしようと思い,たどり着きました.
MT3.35を使用しているので,ともさんの切れてしまっている部分が気になります.私からも補っていただけると助かります.
よろしくお願いします.
はじめまして。古い記事にコメント失礼します。
こちらのテンプレートを用いて移行したところ、追記部分が動いていなかったので、改良したものを公開させて頂きました。
詳しくはTrackbackをご覧下さい。
Satoshiさん
コードを改善いただきありがとうございます!
本文中でもご紹介させていただきます。
快諾して下さったばかりか、紹介までして頂き有り難うございます!
移行にあたり参考にさせていただき、不完全ながら、Movable TypeのウェブページをWordPressのページにインポート可能なテンプレートを作らせていただきました。
度々失礼します。
せっかくリンクして頂いていて言うのも、お気持ちを無下にするようで申し訳ないのですが、もし宜しければ私の書いたコードも併せて公開して頂けませんか?
この追記を含めたテンプレートは、需要のある情報のようなのですが、残念ながらこちらのサイトは運営が不安定なもので、いつ消えるとも分かりません。
ご検討願います。