Movabel TypeからWordPressへ:WXR(WordPress eXtended RSS)でURLも移行!

Movable TypeからWordPressへのデータの移行(Movable TypeからWordPressへURLもタグも移行する方法)が、失敗していた(コメントが一部だけしかインポートされず、トラックバックがなくなってしまっている)ということに気がついたので、やり直しました。

前回紹介したNetScrander » MovableTypeからWordPressに固定リンク込みで完璧に移行する方法で提供されているテンプレートを参考に、以下を変更しました。

・トラックバックがあるかどうかを判定している部分のスペルミスを修正

・MTPingsのブロックタグを追加

・コメント・トラックバックのひとつひとつがwp:comment要素になるように、開始タグ・終了タグとMTCommentsのブロックの関係を変更

・トラックバック元のIPアドレスが固定値だったのを、MTPingIPに変更。

(あと、コメント・トラックバックがオープンである前提になっているので、クローズしてある場合は、そのあたりも変更)

で、修正後のテンプレートはこんな感じになってます。


<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0"

xmlns:content="http://purl.org/rss/1.0/modules/content/"

xmlns:wfw="http://wellformedweb.org/CommentAPI/"

xmlns:dc="http://purl.org/dc/elements/1.1/"

xmlns:wp="http://wordpress.org/export/1.0/"

>

<channel>

<title><$MTBlogName$></title>

<link><$MTBlogURL$></link>

<description><$MTBlogDescription$></description>

<language>ja</language>

<wp:base_site_url><$MTBlogURL$></wp:base_site_url>

<wp:base_blog_url><$MTBlogURL$></wp:base_blog_url>

<MTSetVarBlock name="ecount"><$MTBlogEntryCount$></MTSetVarBlock>

<MTEntries lastn="$ecount">

<item>

<title><$MTEntryTitle$></title>

<link><$MTEntryPermalink$></link>

<pubDate><$MTEntryDate format="%Y-%m-%d %H:%M:%S"$></pubDate>

<dc:creator><![CDATA[<$MTEntryAuthor$>]]></dc:creator>

<category><![CDATA[<$MTEntryCategory$>]]></category>

<category domain="category" nicename="<$MTEntryCategory$>"><![CDATA[<$MTEntryCategory$>]]></category>

<MTEntryIfTagged>

<MTEntryTags>

<category domain="tag"><![CDATA[<$MTTagName$>]]></category>

<category domain="tag" nicename="<$MTTagName$>"><![CDATA[<$MTTagName$>]]></category>

</MTEntryTags></MTEntryIfTagged>

<guid isPermaLink="false"><$MTBlogURL$>/wp/?p=<$MTEntryID$></guid>

<description></description>

<content:encoded><![CDATA[<$MTEntrybody$>]]></content:encoded>

<guid isPermaLink="false"><$MTEntryPermalink$></guid>

<excerpt:encoded><![CDATA[<$MTEntryExcerpt$>]]></excerpt:encoded>

<wp:post_id><$MTEntryID$></wp:post_id>

<wp:post_date><$MTEntryDate format="%Y-%m-%d %H:%M:%S"$></wp:post_date>

<wp:post_date_gmt><$MTEntryDate format="%Y-%m-%d %H:%M:%S"$></wp:post_date_gmt>

<wp:comment_status>open</wp:comment_status>

<wp:ping_status>open</wp:ping_status>

<wp:post_name><$MTEntryBasename$></wp:post_name>

<wp:status>publish</wp:status>

<wp:post_parent>0</wp:post_parent>

<wp:menu_order>0</wp:menu_order>

<wp:post_type>post</wp:post_type>

<wp:post_password></wp:post_password>

<wp:postmeta>

<wp:meta_key>_edit_lock</wp:meta_key>

<wp:meta_value>1221409228</wp:meta_value>

<MTComments sort_order="ascend">

<wp:comment>

<wp:comment_id><$MTCommentID$></wp:comment_id>

<wp:comment_author><![CDATA[<$MTCommentAuthor$>]]></wp:comment_author>

<wp:comment_author_email><$MTCommentEmail$></wp:comment_author_email>

<wp:comment_author_url><$MTCommentURL$></wp:comment_author_url>

<wp:comment_author_IP><$MTCommentIP$></wp:comment_author_IP>

<wp:comment_date><$MTCommentDate format="%Y-%m-%d %H:%M:%S"$></wp:comment_date>

<wp:comment_date_gmt><$MTCommentDate format="%Y-%m-%d %H:%M:%S"$></wp:comment_date_gmt>

<wp:comment_content><![CDATA[<$MTCommentBody convert_breaks="1"$>]]></wp:comment_content>

<wp:comment_approved>1</wp:comment_approved>

<wp:comment_type></wp:comment_type>

<wp:comment_parent>0</wp:comment_parent>

<wp:comment_user_id>0</wp:comment_user_id>

</wp:comment>

</MTComments>

<MTPings sort_order="ascend">

<wp:comment>

<wp:comment_id><$MTPingID$></wp:comment_id>

<wp:comment_author><![CDATA[<$MTPingBlogName$>]]></wp:comment_author>

<wp:comment_author_email></wp:comment_author_email>

<wp:comment_author_url><$MTPingURL$></wp:comment_author_url>

<wp:comment_author_IP><$MTPingIP$></wp:comment_author_IP>

<wp:comment_date><$MTPingDate format="%Y-%m-%d %H:%M:%S"$></wp:comment_date>

<wp:comment_date_gmt><$MTPingDate format="%Y-%m-%d %H:%M:%S"$></wp:comment_date_gmt>

<wp:comment_content><![CDATA[<strong><$MTPingTitle$></strong>

<$MTPingExcerpt$>

...]]></wp:comment_content>

<wp:comment_approved>1</wp:comment_approved>

<wp:comment_type>trackback</wp:comment_type>

<wp:comment_parent>0</wp:comment_parent>

<wp:comment_user_id>0</wp:comment_user_id>

</wp:comment>

</MTPings>

</item>

</MTEntries>

</channel>

</rss>


<追記>トラックバックにいくつか抜けを見つけました。遅くなるかもしれませんが、対処したら修正します。MTEntriTracbackCountでの分岐で、トラックバックが表示されないものがあったので削除しました。理由はわかりません。MTEntryCommentCountも、要素タグとの関係からみると必要ないのでついでに削除しました。</追記>

流行にのっての移行はしないつもりでいたのですが、ここ数日で、WPを使うメリット(自分のスキル的にPHPのアプリケーションであることは便利)に気がついたので、準備中にまずいことに気がつかなければ、移行を進めていくつもりです。

今のところここはまだMTです。

WXRの仕様はどこにあるのかなあ。要素の入れ子の状態はこれでいいのかどうかとか、固定の値がなにを意味しているのか、このままでいいのか、よくわかりませんが、ちゃんとインポートしてくれたようです。

自分の場合は、ウェブページはちゃんとは使ってなくて、ブログだけなので、これでOKでしたが、MTのブログページとWPのページの関係はどうなんでしょうね。

<追記>

コメント欄に出てくる書籍はこちらです。

より完成度の高いテンプレートや、詳しい手順が紹介されています。

WordPress 2.7対応「導入&カスタマイズ」実践ガイド―個人ブログも企業サイトも簡単&無料で構築できる!
WordPress 2.7対応「導入&カスタマイズ」実践ガイド―個人ブログも企業サイトも簡単&無料で構築できる!吉村 正春

秀和システム 2009-02
売り上げランキング : 3954

おすすめ平均 star
star充実した1冊です!
starWordPress の機能強化にこの1冊

Amazonで詳しく見る
by G-Tools