- Posted at 2009/01/05 14:44
- Categories: MovableType, WordPress
当ブログをMovableTypeからWordPressに変更しました。
まえまえからWordPressへ移行したいと思っていたのですが、なかなか踏ん切り?がつかずにいたのですが、以下のエントリーを見て決意しました。
- [N] Movable TypeからWordPress移行の波がくる?
- 固定リンクを変えずにスムーズにMovableTypeからWordPressに移行するまでの作業ログ | IDEA*IDEA
- ブログをMT(3.32)からWordPressに移行しました : akiyan.com
ネタフルさんが書かれているように、影響力のあるブロガーさんが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側の取得フィードをアドレスを変えるだけで済みました(^^;)
う〜ん、他にもなんか特別なことをやったような気もしますが、忘れてしまいました。
この記事を参考にして、これ足りないよという情報がありましたらコメントください。
導入したプラグイン等はまた後日エントリーします(^^;)
こちらの記事もあわせてどうぞ!
関連書籍
- Newer: WordPress 2.7でインストールしたいプラグイン11選
- Older: あけましておめでとうございます 2009
Comments:0
Trackbacks:1
- Trackback URL for this entry
- http://www.multiburst.net/ElectricBrain/2009/01/movabletype-to-wordpress/trackback
- Listed below are links to weblogs that reference
- MovableType 4.23 から WordPress 2.7 へ移行しました from ElectricBrain Standard
- pingback from WordPressに移行しました。 | ウダ2 Blog 09-08-02 (日) 4:47
-
[...] ググってみるとMovableType 4.23 から WordPress 2.7 へ移行しましたって記事に解決法が書いてあった。 [...]



