« Google Gearsの使いどころと可能性 | メイン | 最新Linux、Fedora 7リリース。ちょっと応援 »

MovableTypeからWordPressへ同じパーマリンクでの移行方法

MovableTypeは使い勝手もよく、機能も情報も豊富で非常にいいと思うのですが、エントリが300を超えて、再構築の時間が結構かかるようになってきました。ダイナミックパブリッシングでもいいのですが、ここは一つテンプレートが豊富でデザインセンスのない私のためのソフトのようなWordPressへ移行しようかと思っています。

という訳で、近々WordPressに引っ越すため、データを移す方法を調べてみました。

  • 全てのデータを移行
  • Permalinkをそのまま使えるようにしたい
  • 出来ればエントリータグも移したい
  • テンプレート・デザインは無理もしくは必要ない
  • バージョンはMovableTypeは3.35J, WordPress ME2.20

WordPressはインポート・エクスポート機能が強力で、MovableTypeも簡単にデータのエクスポートが出来ます。基本的にデータを移行するだけなら、双方の基本機能だけで行えますが、各エントリのURLについては、MovableTypeのエクスポートデータに含まれないため、そのままでは無理そうです。タグデータも同様です。

調べてみたのですが、少し古めの情報しかありませんでした。最近の情報で最も近そうなのは以下で紹介されている方法ですが、railsを使われており、出来ればMovableTypeとWordPressだけでなるべくお手軽にやってみたいところです。

ソースを調べたところ、簡単そうなので自力でいじってみることに。結果パーマリンクはいけたのですがタグの情報が移せていません。やり方を以下に紹介します。

基本は$MT/lib/MT/ImportExport.pmに手を加えて、URLとタグと出力させ、対応する入力部分を$WP/wp-admin/import/mt.phpに作ればいけるはずです。

まずはWordPressでURL書き換えの設定。管理画面の[各種設定] -> [パーマリンク設定]画面の "一般的な表示:"の中の"独自表記..."をチェックし、以下のパターンを入れて"パーマリンク構造を更新"を行います。サーバでmod_rewriteが使えることが必須、WordPressのトップディレクトリにapacheから書き込み権限があると楽です。

/%year%/%monthnum%/%postname%.html

 

MovableTypeの修正。$MT/lib/MT/ImportExport.pm:541行目に以下の(折り返してますが)4行を追加

PERMALINK: <$MTEntryPermalink$>
<MTEntryIfTagged>
TAGS: <MTEntryTags glue=","><$MTTagName$></MTEntryTags></MTEntryIfTagged>
ID: <$MTEntryID$>

 

WordPressの修正。$WP/wp-admin/import/mt.phpをいじります。275行目のdefault:の前に以下を追加。超手抜きです。

case 'PERMALINK' :
 $tmpvalue = strrchr($value,"/");
 $post_name = substr($tmpvalue, 0, strpos($tmpvalue, "."));
 break;

295行目を以下のように修正。折り返していますが1行です。見づらいですが要は'post_name'を付け足すだけです。

$postdata = compact('post_author', 'post_date', 'post_date_gmt',
'post_content', 'post_title', 'post_excerpt', 'post_status',
'comment_status', 'ping_status', 'post_modified',
'post_modified_gmt', 'post_name');

 

変更が終わったらMovableTypeから全エントリを書き出ししてWordPress側でインポート。IEではエクスポートに問題があると話もあるようですが、Firefoxでは問題なしで、ほぼいけた感じです。何とかタグを移行したくて、これからもいじりそうなので、以下のところでこのエントリーの内容をまとめています。後はmeta keywords/descriptionなんかも移したいところです。keywords/タグも移せるようになりました。是非以下のwikiをご覧下さい。

エントリータグもメタ関連も機能もWordPressの標準機能にないようなので、プラグインが前提になってしまいますし、それなりに変更が必要そうです。とりあえずカスタムフィールドに入れようか。タグはUTWが良さそうなので、これの使用を前提になにか考えるか。。。

既に情報があるよ、とかもっとこうしたらいいよ、問題あるよーなど、ご意見いただけると幸いです。
#TB頂いたなないろブログさんで間違いのご指摘を見つけたので修正しました。

トラックバック

このエントリーのトラックバックURL:
http://blog.browncat.org/cgi-bin/mt/mt-tb-abc.cgi/325


この一覧は、次のエントリーを参照しています: MovableTypeからWordPressへ同じパーマリンクでの移行方法:

» Movalbe Type3.3からWordPress2.2への移行について 送信元 なないろブログ
Movalbe Type3.3からWordPress2.2への移行について 忘れないうちに何をやったのか記録しておこう。 順序を間違って戻したり、繰り返し... [詳しくはこちら]

» MovableTypeからWordPressへmeta keywordsも移す方法 送信元 blog@browncat.org
前回パーマリンクを含めてMovableTypeからWordPressへ移す修正... [詳しくはこちら]

» ワードプレス・WordPressについて調べて見る 送信元 LiveMore International Inc.
Movable Type 4.0 が発売され、法人利用には新たに料金がかかります そんな中、小粋空間さんで、 ワードプレス・WordPressが世界でシェ... [詳しくはこちら]

» 移行に際して 送信元 悪い切れ味
MovableType4.01からWordPress2.5に移行したわけですが、 記事をすべてインポートする際にパーマリンク(記事のURL... [詳しくはこちら]

コメント (1)

jack:

記事を参考にさせていただきました、ありがとうございます

一点どうしても分からない点があり、「教えてGOO」で質問しましたが、解決策は見つかりませんでした

もしよろしかったら教えていただけませんでしょうか?

MT側の設定の
$MT/lib/MT/ImportExport.pm
に手を加えて、URLとタグと出力させる事はできましたが

WP側の設定の
$WP/wp-admin/import/mt.php
の部分で躓いているのだと思います
どうしてもURLを引き継いでくれません

以下の2つのページは同じページのURLの末尾ですが
移行前と移行後で、どうしても異なるURLになってしまいます
(日付だけは同じにできる)

MT側のURL
/2008/01/rss_10.html

WP側のURL
/2008/01/rssieauuieycyyyoio.html


コメント欄に長々と書いてしまって申し訳ありませんが
お時間のある際にでもお返事いただければ幸いです

どうぞよろしくお願いします

コメントを投稿

(お書きになったコメントはすぐには表示されません。ご了承ください。)


About

2007年06月01日 09:30に投稿されたエントリーのページです。

ひとつ前の投稿は「Google Gearsの使いどころと可能性」です。

次の投稿は「最新Linux、Fedora 7リリース。ちょっと応援」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

           

カテゴリー

Powered by
Movable Type 3.36

Twitter


最近のエントリー

デル株式会社ads

注目エントリー