- 2011-02-28 (月) 10:54
- 技術
皆さんが相変わらず気になるであろう、MTからWPへの移行。
以前、「movabletypeからwordpressに移行する時のテンプレート改良版」と言うことで余所様の手法を改良して公開したりもしましたが、未だ残っている問題が、画像のパスについての問題です。
いい加減、この問題に終止符を打つべく、添付ファイルを込みでインポートする方法を開発(?)しました。MTは4以降、WPは3.0以降です。
- 先の方法でwordpress.xmlを生成
- wxr-attachement をダウンロード・解凍
- コマンドラインから php wxr-attachement wordpress.xml wordpress_with_attachment.xml
こんな感じで使います。wordpress_with_attachment.xml は書き出し先です。
まぁ、Wordpress使ってる人ならこの程度のphpは分かるだろうと言う事で。。 サーバーで動かす人は適当に先頭で宣言しているパスを書き換えて一回httpからアクセスすると書き出せます。
ともかく、コレで出来た wordpress_with_attachment.xml をwordpress-importer から読み込むと、上手く動くと思います。
ちなみに、MT3.4とかからインポートするときは、MT3.4→MTOS4 or 5→WP ってやると動きますよ。
現状の問題点
- 画像のリンク先が正常に動作していない。
- 日本語ファイル名だと一部環境(MacOSXのApacheとか)だと表示されない。 ただし一般的なレンタルサーバーでは動く模様。使用する際は要確認。
- 結構めんどくさい。MTからWP形式の書き出し、書き出したファイルの変換、インポート。もっと楽に出来ないのか。
ま、動くので良いとしましょう。
追記
(v1.1) 日本語ファイル名への対処をある程度行いました。全ての環境で完璧に動くわけでもない気がします。。報告お待ちしております。
以下、どうやって作ったか。
まず、wordpessから書き出した公式のWXRファイルをインポートしてみました。
すると、エントリより前にまず添付ファイル群をインポートしてるのが分かります。これは…そのまま添付ファイル情報を書いてると見た。
で、wordpressから書き出したWXRファイルを見てみると、そのまま書いてるんですね。
次に、ざっとwordpress-importer.php(インポートにつかうプラグイン)を読んでみました。
どうやらitem要素内要素の”wp:post_type” と “wp:attachment_url”が重要な気がしたので、これだけ手書きしてインポートを試しました。
正常に画像がインポートされていました。後の記事インポートでは該当する画像がインポート元ブログのパスからインポート先ブログのパスに書き換わっているので(ほぼ)完璧です。
そんなわけで、後は適当にphpで書きました。
※ ちなみにXMLパーサで解析しようとしたらWXRがパーサに蹴られたので正規表現で誤魔化してます。まぁ、このぐらい構造が単純なXMLならコレで良いでしょう。
- Newer: SimplePieがパースエラーを吐くときの対策
- Older: iPhone3Gを使いこなす
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://blog.s-satoshi.net/tech/movabletype_to_wordpress_with_attachment_image/trackback/
- Listed below are links to weblogs that reference
- 画像を含めたmovabletypeからwordpressへの移行 from S.Satoshiのブログ