MT -> WP

2009年1月18日

いつの間にやら当たり前の顔をしてWordPressですが、Movable Type からWordPress に移行するにあたり、困ったことを書いてみたいと思います for 自分。後々何かの役に立つかも知れないと for 自分。

まずいきなり困ったのは、書き出せない、ということです。「エントリーの書き出し」ができないのです。

私の使っているMTのバージョンは3.3.6です。MTからWPに移行するには、MTで投稿したエントリの内容をいったんファイルに書き出さねばなりません。MT画面左側メニューの「読み出し/書き出し」を選び、「going after mandarinからエントリーを書き出す」ボタンをポチっとなするとデータベースからエントリがずらずらずらっと書き出される。はずなのです。が。ポチっと後、待てど暮せど終わらない。寝ても覚めても終わらない。揚げ句の果てに「サーバが応答しません」。なぬー。

エントリ数500あまりというのは、ウェブログとしてはさほど大きい方でもないと思うのですが、サーバに負荷(?)がかかるのか、何度試しても書き出せない。時間を変えても書き出せない。なんで?エントリーアーカイブの全部リビルドとかはふつうにできるのに。はっ!リビルド!

というわけで突如ひらめきました。インデックステンプレート書いて、再構築すればいいんじゃないか?

テスト用に新しいウェブログを作成して、ちょっとだけエントリとコメント書いて、「エントリーの書き出し」をやってみる。今度はうまくいきました。その書き出されたファイルを開いてみると、こんな感じ。

AUTHOR: harin

TITLE: テストタイトル

STATUS: Publish

ALLOW COMMENTS: 1

CONVERT BREAKS: __default__

ALLOW PINGS: 1

PRIMARY CATEGORY: テストカテゴリ

CATEGORY: テストサブカテゴリ

 

DATE: 01/17/2009 11:05:48 PM

—–

BODY:

テスト本文

…以下略

この「テストタイトル」とか「テスト本文」とかの部分を<$MTEntryTitle$>とか<$MTEntryBody$>とかに置き換えて、<MTEntries>グルグル回してやればいいんじゃないか。冴えてるオレ。冴えまくりすぎて怖すぎるオレ。

というわけで、こんな具合のテンプレートを。

<MTEntries lastn=”2000″>

AUTHOR: <$MTEntryAuthor$>

TITLE: <$MTEntryTitle$>

STATUS: Publish

ALLOW COMMENTS: 1

CONVERT BREAKS: 0

ALLOW PINGS: 1

PRIMARY CATEGORY: <$MTEntryCategory$>

CATEGORY: <$MTEntryCategory$>

 

DATE: <$MTEntryDate format="%m/%d/%Y %I:%M:%S %p" $>

—–

BODY:

<$MTEntryBody$>

—–

EXTENDED BODY:

<$MTEntryMore$>

—–

EXCERPT:

 

—–

KEYWORDS:

<$MTEntryKeywords$>

—–

<MTComments>

COMMENT:

AUTHOR: <$MTCommentAuthor$>

EMAIL: <$MTCommentEmail$>

IP: <$MTCommentIP$>

URL: <$MTCommentURL$>

DATE: <$MTCommentDate format="%m/%d/%Y %I:%M:%S %p" $>

<$MTCommentBody$>

—–

 

</MTComments>

 

——–

</MTEntries>

STATUSとかALLOW COMMENTSとかは条件文で切り分けるべきなのでしょうが、面倒くさいので固定。カテゴリもサブカテゴリをゴリゴリ作っている人は、何らかの工夫が必要でしょう。マンダリンはサブカテゴリ1階層だけなので上記のとおりです。

そして、いよいよドキドキの再構築。ポチっとな。…カリカリ…。完了。5秒。5秒ですよ。5秒でふつうに完了しましたよ。できたファイルをブラウザで開いて確認。うん。ちゃんと、全エントリ書き出されてるっぽい、すばらしい。すばらしすぎる。すばらしすぎて怖すぎるオレブラボー。ていうか、むしろ、なぜ。「再構築」も「エントリ書き出し」もMTがパールでやってるんだよね。なんでこんなに処理に差が出るの?成果物は同じなのに?

まぁいいか。

この方法の副作用といいますか利点ですが、ふつうの「エントリー書き出し」では書き出されない「タグ」を書き出すことができる、ということです。「タグ」に限らず、移行先に合わせて形式を柔軟にカスタマイズできますので、「書き出せない」という不具合に直面せずともなかなかに便利な方法ではないでしょうか。カテゴリとかステータスで書き出すエントリ選んだりとかもできるし。テンプレ書くのちょっとめんどいけどね。

実は「鯖書房」はキーワード欄にISBNと作者名をコンマ区切りで入れたりとか、カテゴリの前にCSSのための独自記号付け加えたりとかかなり無理なことをやっているので、PHPで分解して、追加したカスタムフィールドに読み込ませたりとかしたらかなりの幸せが見込めそう。ちょっと険しいですが。険しいわりには出力結果同じですがそこはそれ変態ということで。

【それでも今日のどうぶつTips】

ワカサギ…限定だと?

コメント / トラックバック 2 件

  1. colo より:

    タイムスリップ中で夏ですが、サソリを捕まえる事ができませんでした。。
    もう戻すのもメンドウくさいのでそのまま秋へ突入しようかなとか。
    相変わらず噴水の女神と相性が悪いのか、金の斧入手できてません。
    でもやっと銀のスコップを入手しました。リセットさん!ありがとう!!
    限定で魚釣り大会ですか・・・。優勝できましたか?

  2. ハリン より:

    雪がかなり溶けていて雪だるま作りにくいですうちの村。
    これってもう一回積もったりしないのかなぁ。
    寒波が来るって掲示板かどこかに書かれてあったような気がするのですが…。

    銀のスコップ微妙ですよね。
    常に二倍ならうれしいのですが、
    100ベルが200ベルとかどうなのかという感じで。

    ワカサギつり大会は優勝できました。
    つり大会インチキ用にマグロとかカンスとか家で飼っていたのですが、
    全部売却しました。
    邪魔ですし。

コメントをどうぞ