MovableTypeの大量の固定ページをWordPressに移植する方法。

先般、MovableTypeからWordPressに移植した「のりもの絵本作家山本忠敬の世界」は、コンテンツの半分以上が固定ページ(MovableTypeで言うWebページ)でした。

MovableTypeからWordPressへのサイト移植は、今回で3回目となります。
移植のノウハウに関しては、大量の情報がWeb上にあります。
よって私のような素人でも先人たちの情報のおかげで、さほど苦労せずに移植してきました。

ところが今回のようにMovableTypeの固定ページをWordPressに移植するノウハウに関しては、ネット上から探し出す事が出来ませんでした。
検索して分かったのは、「MovableTypeのエクスポート機能は、固定ページには対応していない」と言う点だけでした。

このサイトの固定ページには、作品ごとに「文章の作者」や「発表時期」「出版社」「amazonへのリンク」などの情報をカスタムフィールドで登録していました。
また、現在では入手不可能である付録の文章や、山本忠敬自身による作品のエピソードなどを大量に手入力していました。
01_MTカスタムフィールド
上に示すように、このサイトのメインコンテンツと言えるものが、固定ページという形であったわけです。

何とかして移植できないかと色々と試行錯誤をしているうちに、固定ページのデータをXML(Extensible Markup Language)で出力出来ないかと思いつきました。
以前、WordPressが壊れたサイトを新規インストールしたWordPressに移植した際に、エクスボート・インポートのデータがXMLであった事を思い出したのです。

その方向でネットを検索した所、Rewishさんの「WordPressへ移行するなら、XMLを書き出すのがスムーズ」という記事を見つけました。
そこにはMovableTypeの投稿内容をXMLで書き出す方法が紹介されてました。
具体的にはMovableTypeで、投稿内容をXMLで書き出すテンプレートを作成し、XMLファイルに出力するという内容でした。
しかし残念ながら紹介されているのは投稿ページの書き出しだけで、お目当ての固定ページに関しては触れられていませんでした。
そこで、紹介されているテンプレートを、手探りで固定ページ用に書き換えてみました。

その結果、試行錯誤はありましたが、何とか固定ページのXMLを書き出す事が出来ました。

具体的には、まず紹介されている方法で投稿ページのXMLファイルを書き出した。
次に別途修正した固定ページ用のXML書き出しテンプレートで、固定ページのXMLファイルを書き出しました。
MovableTypeの標準エクスポートツールの書き出しでは、ファイル名にある「-」か゜「_」に変換されるという現象があります。
今回の書き出しでも同様の現象が起きてました。
これは予測していたので、テキストエディタですべて置換しました。
WordPressへのインポートですが、プラグイン「WordPress Importer」を使いました。

この方法で、投稿ページ・固定ページともにWordPressにインポートする事が出来ました。
カスタムフィールドも、リストの様な形で本文にインポートされました。
ここはWordPressてもカスタムフィールドを作成し、コピペで入力して対応しました。

固定ページには「投稿日」の項目が無いためか、全て「1970年1月」という投稿日で取り込まれてました。
02_1970_01
これは検索する上で便利なので、このままにしておきました.
ちなみにこのサイトの設立は2008年7月です。

残念ながら、タグは取り込めませんでした。
これは、取り込み方法にも原因があったのかも知れません。
後の作業が進んでから気づきましたので、先日人力で再入力しました。

またMovableTypeの固定ページも、WordPressでは通常の投稿ページとして取り込みました。
固定ページとしてインポートする方法が分からないという事情もありますが、むしろ投稿ページとして扱った方がメリットが大きいと考えました。
その理由は、

  1. カテゴリーへの振り分けが可能。
  2. プラグイン「Revive Old Post」による自動投稿の対象になる。(固定ページは有料オプション)
  3. 何らかの理由でサイトを引っ越す時に、扱いが楽。(今回で懲りました)

と考えたからです。

最後にMovableTypeの固定ページをXMLに書き出すテンプレートを紹介します。
expot_webpage
下記コードを「カスタムインデックステンプレート」としてして作成し、出力ファイルを指定の上「再構築」します。

手探りで作りましたので。決して人様にお勧め出来るような代物でありません。
あくまでも参考として、ご使用は自己責任でよろしくお願いします。
尚、ハイライトされている所はカスタムフィールドの書き出しに関する所なので、適宜修正して下さい。

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:excerpt="http://wordpress.org/export/1.0/excerpt/" 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>
    <wp:wxr_version>1.0</wp:wxr_version>
<mt:Categories show_empty="1">
    <wp:category ><wp:category_nicename><$mt:CategoryBasename$></wp:category_nicename ><wp:category_parent><mt:ParentCategory><$mt:CategoryLabel$></mt:ParentCategory></wp:category_parent ><wp:cat_name><![CDATA[<$mt:CategoryLabel$>]]></wp:cat_name ><wp:category_description><![CDATA[<$mt:CategoryDescription$>]]></wp:category_description ></wp:category>
</mt:Categories>
<mt:Tags>
    <wp:tag ><wp:tag_slug><$mt:TagName$></wp:tag_slug ><wp:tag_name><![CDATA[<$mt:TagName$>]]></wp:tag_name ></wp:tag>
</mt:Tags>
<MTPages lastn="0" sort_order="ascend">
    <item>
        <title><$mt:PageTitle$></title>
        <link><$MTPagePermalink encode_xml="1"$></link>
        <content:encoded><![CDATA[
                              <MTIfNonEmpty tag="PageBody">
                          <MTIfNonEmpty tag="ArchivesNo">         
                           <ArchivesNo>資料番号: <mt:ArchivesNo></ArchivesNo>        
                           </MTIfNonEmpty>
                          <MTIfNonEmpty tag="pagedata">
                           <pagedata>文: <MTpagedata></pagedata>
                           </MTIfNonEmpty>
                           <MTIfNonEmpty tag="data">
                           <data>発表: <MTdata> </data>
                           </MTIfNonEmpty> 
                           <MTIfNonEmpty tag="pdata">         
                           <pdata>出版社:<MTpdata></pdata>     
                           </MTIfNonEmpty>
                           <MTIfNonEmpty tag="buydata">
                <buydata><img src="http://march-brown.sakura.ne.jp/jiputa/image/amazom.svg" align="texttop">:
                 <MTbuydata><span>現在ご購入出来る商品は、表紙等がこのページの内容とは異なる場合があります。</span></buydata>         
                           </MTIfNonEmpty>
                      </MTIfNonEmpty>   
        <$mt:PageBody$><$mt:PageMore$>]]></content:encoded>
    </item>
</mt:Pages>
</channel>
</rss>

Sponsored Links

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください