Movable Type3.78からWordPressへの取込:記事の書き出しと取込

Movable Type書き出し

お次はいよいよMovable Typeの記事をWordPressに取り込む作業です。

基本的にはMovable Typeの「エントリーの書き出し」でテキストファイルを書き出し、それをWordPress側で取り込むことになります。

しかし、Movable Type4以降であればそのまま取り込めるようなのですが、Movable Type3の場合は一工夫が必要でした。

書き出してみると

まず試しにMovable Type3.78とMovable Type4で書き出しを行ってみました。

Movable Type3.78
AUTHOR: mocamoca
TITLE: 広告ブロック「Adblock Plus」から星新一「むだな時間」を思う
STATUS: Draft
ALLOW COMMENTS: 0
CONVERT BREAKS: __default__
ALLOW PINGS: 0
PRIMARY CATEGORY: インターネット
CATEGORY: インターネット

DATE: 02/18/2014 12:59:59 PM
-----
BODY:
以下本文
Movable Type4
AUTHOR: moca
TITLE: POPFileの高速化(Norton Anti Virusとの併用時など)
BASENAME: popfilenorton_anti_virus
STATUS: Publish
ALLOW COMMENTS: 1
CONVERT BREAKS: richtext
ALLOW PINGS: 1
PRIMARY CATEGORY: アプリケーション
CATEGORY: アプリケーション
DATE: 03/12/2008 10:05:24 AM
TAGS: NortonAntiVirus,POPFile
-----
BODY:
以下本文

Movable Type4にある

  • BASENAME
  • TAGS

がMovable Type3.78側ではないではないですか!

書き出しスクリプトの修正

そこで

mtシステム/lib/MT/ImportExport.pm

の530行目からの書き出し設定に以下の3行を追加しました。

AUTHOR: <$MTEntryAuthor strip_linefeeds="1"$>
TITLE: <$MTEntryTitle strip_linefeeds="1"$>
BASENAME: <$MTEntryBasename$>
STATUS: <$MTEntryStatus strip_linefeeds="1"$>
ALLOW COMMENTS: <$MTEntryFlag flag="allow_comments"$>
CONVERT BREAKS: <$MTEntryFlag flag="convert_breaks"$>
ALLOW PINGS: <$MTEntryFlag flag="allow_pings"$>
<MTIfNonEmpty tag="MTEntryCategory">PRIMARY CATEGORY: <$MTEntryCategory$>
</MTIfNonEmpty><MTEntryCategories>
CATEGORY: <$MTCategoryLabel$>
</MTEntryCategories>
DATE: <$MTEntryDate format="%m/%d/%Y %I:%M:%S %p"$>
<MTEntryIfTagged>
TAGS: <MTEntryTags glue=","><$MTTagName$></MTEntryTags></MTEntryIfTagged>

(参照元:Movable Type 4 ドキュメント)(別ウインドー)

これで書き出してみたところ、

http://mocamoca.com/harablog/archives/2014/02/post_3081.html

の記事は

AUTHOR: mocamoca
TITLE: 広告ブロック「Adblock Plus」から星新一「むだな時間」を思う
BASENAME: post_3081
STATUS: Publish
ALLOW COMMENTS: 0
CONVERT BREAKS: __default__
ALLOW PINGS: 0
PRIMARY CATEGORY: インターネット
CATEGORY: インターネット
DATE: 02/18/2014 11:00:00 PM
TAGS: 読書
-----

になり、Movable Type4と同じになりましたヽ(^。^)ノ

ちなみに、Movable Type4から書き出すと、BASENAMEの「-」(ハイフン)が「_」(アンダーバー)になってしまうという不具合があるようですが、Movable Type3.78の場合は最初から「_」(アンダーバー)なので問題ありませんでした。

(参照元:Movable TypeからWordPressへ移行方法(MTのWP化で手こずるハイフンに注意) | いろいろブログ)(別ウインドー)

空白行がなくなった!

WordPressでの取込

書き出したテキストファイルのWordPressへの取込は「Movable Type and TypePad Importer プラグイン」を使います。

取込はうまくいき、パーマリンクも

http://localhost:8888/harablog/archives/2013/04/post_2720.html

という感じで保持されていました。

しかしここで問題が発生!
本来

Cさんの指示で下ごしらえをしたり、次々に出てくる洗い物を片付けます。回る少女
私も早く火の前に立ったり味付けを任されたい。

今夜のメニューは、まずは麻婆豆腐と青椒肉絲。
実は先日私が思いつきで「食べたい」と言ったのを覚えてくれたのです。

であってほしいところが

Cさんの指示で下ごしらえをしたり、次々に出てくる洗い物を片付けます。回る少女
私も早く火の前に立ったり味付けを任されたい。
今夜のメニューは、まずは麻婆豆腐と青椒肉絲。
実は先日私が思いつきで「食べたい」と言ったのを覚えてくれたのです。

と空白行がなくなってしまったのです。

これは読みにくいですね。
困ります。

そこで

wp-content/plugins/movabletype-importer/movabletype-importer.php

の455行の

if( !empty($line) )
$line .= "\n";

//if( !empty($line) )
$line .= "<br />";

に変更しました。
(参照元:無料ブログの記事と画像をWordPressにインポートする(前編) | ServerKurabe)(別ウインドー)

タグがない!

さらにもう一つ問題が発生!
タグが取り込まれていないのです。

これは

MTの途中のバージョンから、インポートフォーマットに「TAGS」というタグを示すフィールドが追加(タグ自体も途中のバージョンから追加)され、「Movable Type and TypePad Importer」プラグインがその仕様に追従していない

ことが原因だそうです。
(参照元:小粋空間: WordPress 3.0にMovable Typeのタグをインポートする)(別ウインドー)

これは上記の小粋空間の記事に従い、movabletype-importer.phpをさらに修正して解決しました。

よし!これで取込は大丈夫でしょう。
次にデザインや機能の追加をやります。