MovableType 5.2で構築されたブログのデータをWordpress 4にインポートする作業を最近行いましたが、その際にいろいろと面倒だったので、メモを公開させていただきます。
はじめは、MovableTypeのエクスポート機能とWordpressのMTのインポートプラグインを使ってやったところ、文字化けやカテゴリがまったくうまくいきませんでした。
他にもいろいろと手はあると思ったのですが、最終的にMovableTypeのデータベース(Mysql)からCSV作成して、それをWordpressのCSV用のインポートのプラグインを使ってインポートで解決させました。
WordPressのプラグイン
WordPressにCSVのインポート用に下記のプラグインを使用しました。
WP Ultimate CSV Importer Plugin
WP Ultimate CSV Importer Pluginを使って、まず既存のWordpressの記事からCSVのサンプルをエクスポートしました。
それをさらにインポートして試してみました。すると最低限のフィールドがわかったので、下記のフィールドでCSVを作成しました。
MovableTypeのデータベースからWP Ultimate CSV Importer用のCSVを作成
上記のフィールドを元に、下記のSQLを作成して、CSVをエクスポートしました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
SELECT entry_id AS wp_ID, entry_created_on AS wp_post_date, CASE entry_category_id WHEN NULL THEN 'publish' ELSE 'publish' END AS wp_post_status, entry_title AS wp_post_title, REPLACE(entry_text, CHAR(10), '<br>') AS wp_post_content, entry_basename AS wp_post_name, CASE entry_category_id WHEN NULL THEN 'ayumi' ELSE 'ayumi' END AS wp_post_author, mc.category_description AS tx_category FROM mt_entry AS me LEFT JOIN mt_placement AS mp ON me.entry_id = mp.placement_entry_id LEFT JOIN mt_category AS mc ON mc.category_id = mp.placement_category_id WHERE entry_atom_id LIKE '%column%' ORDER BY entry_id DESC INTO OUTFILE '/tmp/mt.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'; |
WP Ultimate CSV Importerは、CSVにヘッダーがないとうまくいかないので、下記のヘッダーを追加してやる
1 |
id,date,status,titile,contents,base,user,category |
インポート
下記の用に管理画面からインポートとどのフィールドにマッチさせるかを選択して、無事インポートができました。
Tips
- パーマリンク設定は、/%year%/%monthnum%/%postname%/に変更
- MTで内部に使用している画像は同じディレクトリ構成で、WPサイトに設置