WordPress2系のシングルサイトから3.0系マルチサイトに移行

WordPress3.0系では、マルチサイトという機能が追加された。以前は、WordPressMEで提供されていた、一つのWordPressで複数の子サイトを運営する機能だ。

これまで、

  • http://dacelo.info/
  • http://blog.dacelo.info/
  • http://example.dacelo.info/

というように、サブドメインで複数サイトをWordPressで運営する場合、それぞれに一つずつWordPressをインストールするしかなかった。
しかし、WordPress3.0からはこうした運営が一つのWordPressで出来るようになったのだった。

では、これまで2系の複数シングルサイトで別々に運営していたものを、WordPress3.0系のマルチサイトに引っ越すためにはどうすればいいのだろうか。

方法としては2つ考えられる。
A.WordPress3マルチサイトで場所を用意して、ログのインポート機能で引っ越し
B.WordPress3マルチサイトで場所を用意して、MySQLデータベースの移行

Aは、記事が多いと不具合が出たり、ウィジェットが移行できなかったりと不具合があるのでおすすめはしない。
ここではBの方法を紹介する。

1.まずはWordPress3.0系のマルチサイトを用意する

まずはメインのドメインを、WordPress3.0系にアップデートする。
アップデートしたら、マルチドメインで運用できるようにする。

マルチドメイン化の方法はここでは割愛するので、こちらを見て行なってください。
WordPress 3.0 をマルチサイト化する方法 | WordPress カスタマイズ | Lovelog+*

2.マルチサイトを設定する

サイトを追加

ネットワークメニューを出現させ、「特権管理者」→「サイト」からサブドメインの新しいサイトを追加する。
(ここで、サーバも変更する場合は、新サーバーではURLを作業用にblog2など別のものにしておくか、DNSを先に切り替えてしまうか、hostsで設定する※かしておくこと。)

新しいサイトは、2というIDが振られている。

3.テーマ、プラグインの移行


旧シングルサイトで使っていたテーマとプラグインはあらかじめ移行し、「ネットワークで有効」にしておく。

4.データベースの移行

データベースを見ると、新しいサイトは
wp_3_2_****
というPrefix(接頭辞)が着いていることが分かる。

旧・シングルサイトのデータベースをmysqldumpし、ここにインストール後、テーブル名をwp_3_2_*の形式に変更すれば移行は完了する。
(もちろん、3番目のサイトならwp_3_3_*になる。)

インポートする前に、あらかじめWordPress3.0系が自動で作ったwp_3_2_*のデータベースは削除するが、
wp_3_2_commentmeta
だけは残しておいて良い。(WordPress2系では存在しないので)

広告

あとはdumpしたデータをインポートし、テーブル名を一括で変換すれば準備OKだ。

RENAME TABLE `データベース名`.`wpold_Counterize_UserAgents`  TO `データベース名`.`wp_3_2_Counterize_UserAgents` ;
RENAME TABLE `データベース名`.`wpold_links`  TO `データベース名`.`wp_3_2_links` ;
RENAME TABLE `データベース名`.`wpold_options`  TO `データベース名`.`wp_3_2_options` ;
RENAME TABLE `データベース名`.`wpold_postmeta`  TO `データベース名`.`wp_3_2_postmeta` ;
RENAME TABLE `データベース名`.`wpold_posts`  TO `データベース名`.`wp_3_2_posts` ;
以下略

こんな感じでまとめて変えてしまおう。
プラグインが使っていたテーブルも移行しておけば、そのまま引き継いで使うことができる。

5.動作確認

3でちゃんとテーマも移行、有効化してあれば、これだけでもうちゃんと表示されているはずだ。
あとは、WordPress以外の静的ファイル、他プログラム、サーバ環境に依存していた部分などがないか確認しておこう。

About: dacelo


2 thoughts on “WordPress2系のシングルサイトから3.0系マルチサイトに移行”

Leave a Reply

Your email address will not be published. Required fields are marked *