【WordPress】 MovableTypeの下書き記事を移行する 【#np2020】

MovableType5
12,000件余りのブログ記事をMovableTypeからWordPressへ移行するにあたり、例によってMovableTypeのエクスポートが正常に完了しなかったので(サーバスペックが高ければ大丈夫なんでしょうけど)、昔からある常套手段、「インデックステンプレートを作って複数ファイルに分けて書き出し」と言うのをやりました。だいたい2,000件ずつ7ファイルに分け、結果的に移行は綺麗に完了したのですが、1つ問題なのはこの方法では下書き(Draft)になっている記事は移行出来ないんですね。


下書きの記事はほとんどの場合「投稿しようとしたけどまとまらなくてボツになった」か、「他のブログに移行済み」かなので移行出来ないならそれはまあもう仕方ないかなとも思うんですけど、もし可能ならデータ出力だけでもしておきたい。



「DraftEntries」下書き記事の一覧を書き出すタグを追加するプラグイン

エンジニアにわがままを言ってプラグインをつくってもらった森山です。 MTEntriesでstatus=”1″とかやると下書き記事が出力できないものかなぁと思ったら、案の定でませんでしたw 久し振りにマニュアルをみると、もともとそんなことはできないらしい。 ということで、弊社のぴろり上西さんに相談。

森山:「上西さん、MTDraftEntriesみたいなタグで、下書き状態の記事を出力したいんだけど。」
上西:「え・・・。また、ニッチな話ですねぇw」

という会話の後で、さくっと作ってもらいました。

下書き状態の記事を一覧するテンプレートタグ:DraftEntries – エンジニアブログ – スカイアーク


なんかないかなと思って探したらこんなものが見つかりました。対応確認バージョンは「MT4.23」でかなり古いんですが、うちの「MT5.12」でもちゃんと動きました。plugins ディレクトリにコピーした上でインデックステンプレートを作成し、こんな感じで記述。
(コメント、トラックバックは省略しています)


<MTDraftEntries lastn="1000">AUTHOR: <$MTEntryAuthor$>
TITLE: <$MTEntryTitle$>
BASENAME: <$MTEntryBasename$>
STATUS: <$MTEntryStatus$>
ALLOW COMMENTS: <$MTEntryFlag flag="allow_comments"$>
CONVERT BREAKS: <$MTEntryFlag flag="convert_breaks"$>
ALLOW PINGS: <$MTEntryFlag flag="allow_pings"$>
PRIMARY CATEGORY: <$MTEntryCategory$>
<MTEntryAdditionalCategories>CATEGORY: <$MTCategoryLabel$>
</MTEntryAdditionalCategories>
DATE: <$MTEntryDate format="%m/%d/%Y %I:%M:%S %p"$>
TAGS: <MTEntryTags glue=",">"<$MTTagName quote="1"$>"</MTEntryTags>
-----
BODY:
<$MTEntryBody$>
-----
EXTENDED BODY:
<$MTEntryMore$>
-----
EXCERPT:
<$MTEntryExcerpt$>
-----
KEYWORDS:
<$MTEntryKeywords$>
-----
--------
</MTDraftEntries>


こうして書き出したファイルをWordPressにインポートしたところ、無事下書き記事としてインポートされました。あとは、必要のない記事をゴミ箱に放り込んで、おしまい。

スカイアーク森山さん上西さんありがとうございました!
(もう10年も前だし在籍されているかも怪しいけど)



ちなみに:下書き記事は全部で約130件ありました

結構あるなあ。

中には別で書き直して記事に仕立てたものもあるし、タイトルだけ書いて中身がないものもあるけれど、あれなんでこれ公開していないんだっけってのもいくつかあって、まあそれはまたね。そのうちサルベージして公開することもあるかも知れません。わからんけど。