Home > MovableType | WordPress > MovableType 4.23 から WordPress 2.7 へ移行しました

MovableType 4.23 から WordPress 2.7 へ移行しました

当ブログをMovableTypeからWordPressに変更しました。

まえまえからWordPressへ移行したいと思っていたのですが、なかなか踏ん切り?がつかずにいたのですが、以下のエントリーを見て決意しました。

ネタフルさんが書かれているように、影響力のあるブロガーさんがWordPressへ移行したというのはでかいですね(^^;)

私もWordPressに移行する理由として、

  • MT 4.xにバージョンアップしたけれども、CMS的な要素が大きくなり、アプリケーション自体が重い。
  • MTの再構築がとにかくめんどくさい!
  • WordPressには再構築がない!!
  • 世界No.1のシェアだけあって、プラグインなどのカスタマイズなどが豊富。
  • 等々

それでは、このブログでの作業ログを載せてみたいと思います。

基本的には、IDEA*IDEAさんの記事を参考にさせてもらったのですが、うちの環境とはちょっと違ったので、いろいろ試行錯誤しました。

いちをこの記事は、MovableType 4.23-jaとWordPress 2.7のバージョンを前提に書いております。

で、いきなり問題が発生しました。

MTの時のパーマリンクの形式は、以下のような感じ。

/archives/2007/12/20/1211.php

つまりは、「年/月/日/時分.php」という形になっていたのです。

ところが、WordPressのパーマリンクは、パーマリンクとして、

/archives/%year%/%monthnum%/%day%/%hour%%minute%.php

という形はダメみたいなのです。

これは移行に当たって致命的な問題・・・・

ということで、「パーマリンクを変更せずに」という理想的な形は捨て。。。パーマリンクは.htaccessでリダイレクトすることにしました。

ということで、MTでまずリダイレクト用のテンプレートを作成しました。WordPressのパーマリンクの設定としては、

/%year%/%monthnum%/%postname%

としました。で、いかがMTでのインデックステンプレート。

<mt :Entries lastn="99999">
Redirect permanent /ElectricBrain/archives/< $MTEntryDate format="%Y/%m/%d/%H%M"$>.php < $mt:BlogURL$>< $MTEntryDate format="%Y/%m"$>/< $MTEntryBasename$></mt>

これで出力されたファイルをWordPressのルートディレクトリの.htaccessに書き込みます。

次にデータの移行ですが、MovableType管理画面の[ツール]>[エクスポート]でエントリーをテキストファイルに書き出します。それをWordPressでインポートするのですが、ここで問題が。MTでエクスポートしたファイルにはエントリータグはあるが、インポートするとタグが反映されない。また、そのままインポートすると、WordPressの%postname%がそのままブログのタイトルになってしまう。

これを解決するために、WordPressのインポートスクリプトである、[(WP)/wp-admin/import/mt.php]に以下のように追加しました。

270行目あたり

//tags import
if( $post->tags)
wp_add_post_tags($post_id, $post->tags);

408行目あたり

} else if ( 0 === strpos($line, "TAGS:") ) {
$tags = trim( substr($line, strlen("TAGS:")) );
$tags= preg_replace("|\n*-----|s", '',$tags);
if ( '' != $tags )
$post->tags = $tags;

413行目あたり

} else if ( 0 === strpos($line, "BASENAME:") ) {
$post_name = trim( substr($line, strlen("BASENAME:")) );
if ( '' != $post_name )
$post->post_name = $post_name;

これで、エントリータグがインポートで反映され、さらに、MTでエクスポートしたBASENAMEがWordPressの%postname%に反映されます。

ただ、今回私の場合はパーマリンクを変更すると言うことなので意識はしていないですが、MTでentry-basenameを使用していた場合、BASENAMEでアンダーバー「_」を使用していた場合、実際のURLはアンダーバー「_」ではなくハイフン「-」になってしまっていますので、その辺はちょっと考慮が必要かもしれませんね。。。その辺省略してすみません(^^;)

これでエントリーデータの移行は済みましたので、画像ファイル等の移行です。

基本的にMT4移行は、画像ファイル等は、「(アーカイブパス)/assets_c」に入っています。なので、それらをWordPressの「wp-content/uploads」に移動します。このままではアクセスできなくなってしまいますので、ここも.htaccessに以下を記述します。

RewriteRule archives/(.*\.(jpg|jpeg|png|gif|php))$ wp-content/uploads/old_img/$1 [L]

つまりは、画像ファイル等で/archives/**/*.jpg等でアクセスしたものを、/wp-content/uploads/old_img/**/*.jpgにリライトするわけです。

これで何とか移行はできましたが。。。やはりフィードのURLは変わってしまいました。

が、当ブログではfeedburnerを使用していたので、feedburner側の取得フィードをアドレスを変えるだけで済みました(^^;)

う~ん、他にもなんか特別なことをやったような気もしますが、忘れてしまいました。

この記事を参考にして、これ足りないよという情報がありましたらコメントください。

導入したプラグイン等はまた後日エントリーします(^^;)

関連記事

Comments:0

Comment Form
Remember personal info

Trackbacks:1

Trackback URL for this entry
http://www.multiburst.net/sometime-php/2009/01/movabletype-to-wordpress/trackback/
Listed below are links to weblogs that reference
MovableType 4.23 から WordPress 2.7 へ移行しました from Sometime PHP
pingback - WordPressに移行しました。 | ウダ2 Blog より 2009/08/02

[...] ググってみるとMovableType 4.23 から WordPress 2.7 へ移行しましたって記事に解決法が書いてあった。 [...]

Additional comments powered by BackType

Home > MovableType | WordPress > MovableType 4.23 から WordPress 2.7 へ移行しました

Subscribe This Blog
Subscribe This Blog
FeedBurner

Search
Categories
Tag Cloud
Twitter Counter
Archives
My Other Blogs
Translator
Japanese flagEnglish flag

Return to page top