WordPressの個別ブログを統合してマルチサイト化にする方法

今まで、WordPressは1インストール1サイトでした。
それがWordPress3.0では、マルチサイト化が可能に・・・

では、今まで個別に管理していたWordPressのサイトを、1つに纏めたい時にどうすればよいの??を解説していきます。

Sponsored Link

まず、中心となる、www.example.comをマルチ化します。
必ず、サブドメインで構築できるように設定します。

そして、WordPressの特権管理者で、予め統合したいサブドメインを作っておきます。
要は受け皿を作っておくと言う事です

必ずバックアップを徹底する

まず、データベースのバックアップを必ず作業する前にしてください。
この方法は、私のサーバー環境で行った事であり、他の環境下ではうまくいかない可能性がありますので、注意してください。
ここで、バックアップをしっかりしておかないと、失敗した時に後で泣く事になります…。

統合元のサイトのデータベースと、今まで個別ブログだったデータベースの2つをバックアップしておきます。
個別ブログのデータベースは、1つは修正するので、2つバックアップしておきます。

サブドメインのサイトIDを確認する

サブドメインを作成すると、自動的にサブドメイン用のデータベースが増えていきます。
phpMyAdminを開いて、サブドメインの接頭語を確認し、接頭辞とサイトIDとデータベースの中身を確認します。

例えば、wp_4_optionsは、4がサイトIDとなり、phpMyAdminからデータを見ると、サイト情報を確認する事が出来ます。

phpMyAdminでの確認方法

phpMyAdminでデータを確認する

phpMyAdminを開いたら、WordPressをインストールしているデータベースをクリックします。
すると左にテーブルの一覧表がひょうじされるので、その中から、wp_数字_optionsをクリックします。

phpMyAdminでサイトデータを確認する

クリックすると、option_valueの箇所に、サイト名とサイトURLが表示されています。

個別ブログのsqlファイルを修正する

上記で、特権管理者で作成したサブドメインのサイトID、とデータベースのテーブル名を確認したら、個別ブログのsqlファイルを修正します。

まず、sqlファイルのwp_optionsのテーブル構造をごっそり削除しておきます。

テーブルの構造 `wp_options`

デフォルトでは上記のテーブル構造です。
これはWordPressをインストールした時に、接頭辞を変える事が出来るので、
もし忘れてしまった人は、optionsで検索してみるか、
バックアップしておいた、wp-config.phpの以下の場所を確認してみてください。

// テーブルの接頭語を指定します。複数設置する場合など適宜変更してください。
$table_prefix  = 'wp_';   // 半角英数、アンダースコアが使用できます。

ここでは、WordPressのデフォルトでインストールした場合を例にします。

テーブル構造のwp_を、確認しておいたwp_4_に全て修正します。
文字コードに気を付けて、sqlファイルを保存します。

画像や添付ファイルのリンク先を修正する

統合するにあたって、サブドメインの画像アップロード先が異なるので、
ここで、画像URL先も修正しておきます。
今までは下記の画像URL先にアップされていました。

http://サブドメイン.example.com/wp-content/uploads/年/月/

WordPress3.0のサブドメインの画像アップロード先は、下記のURL先になるので、
sqlファイルを一括置換します。

http://サブドメイン.example.com/files/年/月/

画像や添付ファイルを任意の箇所にアップロードする

サブドメインを作成して、画像をアップロードすると、
実際は、以下のURL先にアップロードされます。
下記の4の数字は、勿論サイトIDです。

www.example.com/wp-content/blogs.dir/4/files/年/月

上記を見て分かるとは思いますが、sqlファイルの画像URL先とアップ先が異なっていることに気づきます。
きっとリダイレクトされているに違いありません(未確認jim912さんのコメント参照

使っているプラグインやテーマ関係をアップロードしておく

言わずもがな、個別ブログで使用しているテーマやプラグインなど予めアップロードしておきます。

データベースをインポートする

phpMyAdminやSSHを使って、データベースにインポートします。

統合した個別ブログの設定をする

インポートした個別ブログのsqlファイルには、wp_optionsのテーブルを除いていたので、
サイト情報が入っていない状態です。

なので、プラグインやテーマ、一般設定など諸々の設定をし直します。

一応、個別ブログのwp_optionsデータはインポートしても大丈夫そうな気がしますが
私は念のため除外しておきました。
※wp_optionsデータは必ず削除しないと、不具合が生じる。

これで、一通り統合化は終わり・・・のはずです。(思いだしながら書き…(;´▽`A“

メディアをクリックして画像が表示されるのをチェックしたり、
色々不具合がないか確認してください。

後でおでこに試させて、ブラッシュアップしておきますw

統合においての注意点

プラグイン関係の注意点

統合するにあたって、今まで動作していたプラグインは、プラグインによっては設定方法が変わっていたります。例えば、W3 Total Cacheなどは、サブドメイン毎に設定し直さなければならず、結構めんどくさいです。

また、マルチサイト化に最適化していないプラグインも存在するため、
動作しないプラグインもあります。

テーマ関係の注意点

個別サイト用だった、アクセス解析などのコードを入れてカスタマイズしてるテーマを、
他のドメインにも使いたい場合は、テーマ自体をコピーしてサブドメイン用のアクセス解析コードを修正して使用するしかありません。

自己責任でお願いします

全て自己責任で・・・失敗の責任は負いかねますので、その上で作業してください。

Sponsored Link