livedoor blog から WordPress サイトへの移行

今回は、前回の記事で作成した MT バックアップ形式のファイルを使って、Wordpress サイトに記事をインポートする方法です。
と言っても単純にインポートするだけなら、すんなり行きますので+α もあります。

手順としては

  • MTバックアップ形式データのインポート
  • 画像ファイルの移行
  • livedoor blog のエントリから、新サイトへの誘導 URL の作成

てな感じになります。

では、詳細を解説。

MTバックアップ形式データのインポート

インポートは簡単。
メニューの[管理] – [インポート] から、[Movable Type と TypePad] を選択して、MTバックアップ形式のファイルを選択すればOK。

私の環境だけかもしれませんが MTバックアップ形式で指定した ALLOW PING: 1 が反映されないようでした。
全記事でトラックバックを受け付けるようにしたい場合は、MySQL に取り込んだデータに対して以下の SQL 文を発行すればOK。

update wp_posts
set ping_status = 'open'
where ping_status != 'open'

画像ファイルの移行

GETHTMLW で取得したファイルには画像ファイルも含まれているので、それをすべて WordPress をインストールしたサーバに転送する。
画像ファイルが保存されている場所は image.blog.livedoor.jp\USERID\imgs 。
zip 等でまとめておいて転送すれば楽チンでしょう。
私は WordPress をインストールしたディレクトリの wp-content/uploads/imgs にすべて転送しましたが、この辺はご随意に。

その後、全記事の画像ファイルのリンク先を変更する。
これも MySQL に取り込んだデータに対して以下の SQL 文を発行すればOK。

update wp_posts
set post_content = replace(post_content, 'http://image.blog.livedoor.jp/USERID/imgs', '自サイトのURL/wp-content/uploads/imgs')

livedoor blog のエントリから、新サイトへの誘導 URL の作成

さて、ここからがこの記事の肝です。
livedoor blog のエントリから、新サイトの同一エントリへ誘導するための URL を作成して、検索で livedoor blog 側に来たお客様を誘導するための URL を作りましょう。

まずは、エントリの URL を日付と記事名に基づく表示に変えましょう。
メニューの [各種設定] – [パーマリンク設定] で [一般的な表示] を、日付と記事名に基づく表示に変更します。
これで、各エントリの URL は /年/月/日/url encode されたエントリのタイトル/ てな感じになります。

次に、この URL にアクセスする方法ですが、テーマエディタでインデックスの先頭に以下のコードを追加します。

<?php
if (array_key_exists('date',$_GET)) {
 $date = strtolower(mb_convert_encoding($_GET&#91;'date'&#93;,'UTF-8','EUC-JP,SJIS,eucjp-win,sjis-win'));
 if (array_key_exists("title",$_GET)) {
  $title = strtolower(mb_convert_encoding($_GET&#91;'title'&#93;,'UTF-8','EUC-JP,SJIS,eucjp-win,sjis-win'));
 } else {
  $title = '';
 }
 $date = preg_replace('/(&#91;0-9&#93;{2,4})年(&#91;0-9&#93;{1,2})月(&#91;0-9&#93;{1,2})日/i', '/$1/$2/$3', $date);
 $title = '/'.urlencode(str_replace('.', '', str_replace(' ', '-', $title)));
 if (function_exists('http_redirect')) {
  http_redirect($date.$title);
 } else {
  header('Location: '.$date.$title);
 }
 exit;
}
?>

これで、新サイトに date, title パラメータ付きでアクセスした場合、該当のエントリにリダイレクトするようになります。
テンプレートに PHP 構文が書ける WordPress は、かなり幸せな環境ですね。

後は livedoor 側の個別テンプレートに以下のコードを追加してやって、再構築すれば完璧です。

移転しました。新サイトは<a href="新サイトのURL/?date=<$ArticleDate$>&title=<$ArticleTitle ESCAPE$>">こちら</a>

再構築する前に livedoor 側は、全エントリに対してコメント・トラックバックを受け付けないように設定しておくと、なお幸せかもしれませんね

とりあえず、移行に際してやったことは大まかにはコレくらいでしょうか。

livedoor blog から WordPress サイトへの移行」への2件のフィードバック

  1. をかもと 投稿作成者

    shake さん、どもです。

    不勉強なもので、何がなにやらさっぱりなのですが、`;:゛;`(;゜ω゜` )

    専門用語ばかりなのでスルーしてください。(^^;;;

    サイト名をもじって、「dogmap」とは洒落てますね。

    もとい君に描いてもらったやる気の無い犬も、結構お気に入りなのです。

    こちらこそ、今後ともよろしくお願いします。

    返信
  2. shake

    おぉっ?!お引越しされたんですね!
    不勉強なもので、何がなにやらさっぱりなのですが、`;:゛;`(;゜ω゜` )
    とにかくリンク先の変更をさせていただきました。
    サイト名をもじって、「dogmap」とは洒落てますね。
    今後ともよろしくです〜♪

    返信

コメントを残す

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

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