Seesaa blogからWordPressへの移行方法メモ

昨日から今日にかけて、このブログをSeesaa blogから新規に作成したWordPressサーバへ移行しましたので、引っかかった点などをメモしておきます。
なお、このサイトは独自ドメインで運用しており、移転にあたって各記事のURLは変更しないことが前提です。

Seesaa、WordPress共にデータのインポート/エクスポートは配慮されており、

  • Seesaa blogはMovableType形式でデータをエクスポートできる
  • WordPressはMovableType形式のデータをインポートできる

ので、移行は一見簡単そうです。
ところが、実際には以下のような問題がありました。

  1. 記事のURLが変更されないよう、WordPress側であらかじめ設定が必要
  2. 記事のURLが変更されないよう、エクスポートしたデータのBASENAMEの修正が必要
  3. 画像はエクスポートされず、URLも書き換える必要がある
  4. Seesaaで自動生成されていたサムネイル画像はWordPressでは生成されない
  5. WordPress標準のImporterではSeesaa blogのタグがインポートされない
  6. 改行2回で作っていた「空行」がインポートすると削除される
  7. YouTube、MPEG4、MP3などのページ埋め込み方法が異なる

とはいえ、今までに多くの方が同じことを行われていますので、ネット上を探せば大体情報は見つかります。
空行の削除だけは少々手こずりましたが・・・。

この記事では、WordPressのインストールや独自ドメインの利用方法などの話は省略します。
未経験者でもlolipopのサーバにインストールして動かすのは問題なくできると思いますし、私自身はWordPressを数年前まで独自サイト(もう閉じてしまいましたが)のCMSとして使っていました。

記事のURLを保つ

さて、WordPressが使えるようになり、手元にSeesaa blogからエクスポートしたデータ(以下、ログデータ)があるとします。
Seesaa blogの記事URLを引き継ぐためには、まずWordPressの「設定」→「パーマリンク設定」で記事に与えるURLを
「/article/%postname%.html」に指定します。

次に、ログデータの各記事にある「BASENAME: 数字.html」の末尾の「.html」を全て取り除きます。
私はOEditというテキストエディタを使って、以下のように正規表現で一括置換しました。

検索:

BASENAME: ([0-9]+)\.html

置換:

BASENAME: \1

画像のURLを修正する

次に画像のURLですが、Seesaa blogでは画像は「http://xxxxxx.up.seesaa.net/image/画像ファイル名」(xxxxxxのところはアカウントごとに異なります)というURLになっています。
WordPress側では、同じ画像をファイル名変更なしで「/wp-content/uploads/画像ファイル名」でアップロードしたとすると、画像のURLも一括置換が必要です。

私の場合は、以下のように置換しました。(こちらは正規表現ではありません)

検索:

http://xxxxxx.up.seesaa.net/image

(xxxxxxのところはアカウントごとに異なります)

置換:

/wp-content/uploads

さらに、サムネイルについては、ファイル名に「-thumnail」が付与されていたので、これを一括削除して、オリジナルの画像を指すように変換しました。
thumbnailの後ろに数字がつくことがあったので、これも以下のように正規表現で置換しました。

検索:

src="(.+)\-thumbnail[^\.]*(\.[^"]+)"

置換:

src="\1\2"

インポートするデータのお化粧としてはこんなところです。
なお、YouTube動画などは、私はあまりリンクしていなかったので、インポート後に個別に修正しましたが、動画・音声等をたくさん埋め込んでいる場合は、この段階で一括して置換するほうが良いと思います。

How to Embed a Video in WordPress – WordPress HowTo

タグと空行をインポートさせる

次に、「タグ」と「改行2回で空行」ですが、これらはWordPressのインポートスクリプト「movabletype-importer.php」の修正が必要です。
タグについては、以下の記事にスクリプトの修正方法が紹介されています。

WordPress 3.0にMovable Typeのタグをインポートする: 小粋空間

WordPressに MovableTypeのタグを含めてインポート

このとおりにスクリプトを修正すれば、Seesaa blogのタグをそのまま引き継ぐことができます。

さらに、この同じスクリプトを修正すると、「改行2回で作った空行」を変換せずにインポートすることもできます。
元のスクリプトは、ログを読み込むときに

  1. ログのテキストを1行読む(行末の改行は読まない)
  2. 行が空でなければ、改行を行末に追加

という処理をしています。そのため、空行は無視されていました。
そこで、このあとに「行がコンテンツの行で、かつ行が空だった場合には改行を追加」という処理を加えます。
さらにWordPress組み込みの関数wpautop( $foo, $br );を使って、段落を<p></p>で囲います。

この変更を加えたプラグインのファイルを、以下のリポジトリに置いておきます。

boochow/seesaa2wp

これを使ってインポートすれば、Seesaaでの改行と大体同じ(完全に同じにはなりません)結果が得られます。

コメントを書けるようにする

インポートの時点での設定が悪かったのか、インポートした記事は新規にコメントができない状態になっていました。
これはWordPressの設定画面では一括変更できず、記事ごとの変更しかできないようです。
データベースをSQLで直接操作すれば一括変更可能ということで、以下の記事を参考にして一括変更しました。

WordPressの全記事のコメント欄をまとめて一括表示させる方法 | Handy Web Design

サーバをWordPressへ移行しました

このサイトは、2011年からSeesaa blogの無料プランを使わせていただいていましたが、このたびlolipopのサーバを借りてWordPressへ移行しました。

主な目的はスマホからの閲覧におけるUX向上です。
lolipopのサーバは月額250円のライトプランですが、泡沫ブログには十分なパフォーマンスです。

コンテンツの移行には若干難儀していますので、まだ画像のリンク切れ等がしばらくは発生すると思いますが、随時修正していきます。