MENU

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

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

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

まず、中心となる、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のテーブル構造をごっそり削除しておきます。

[php]テーブルの構造 `wp_options`[/php]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

統合においての注意点

プラグイン関係の注意点

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

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

テーマ関係の注意点

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

自己責任でお願いします

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

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

WordPress Love! 休日はほぼWordPress仲間と一緒に勉強会や写真を撮りに行っています。現在育児中のため、オフが多いです(>△<<<)

コメント

コメント一覧 (2件)

  • てぃあさん、こんにちは。

    ちょこっとばかし補足をば。
    画像の表示ですが、.htaccessでwp-includes/ms-files.phpにリクエストされ、php経由で出力されるようになっていますので、リダイレクトされている訳ではないです。

    マルチサイトのoptionsテーブルですが、シングルインストールとは必要な項目が異なっていますので、共通項目を個別に上書きするなどは問題ありませんが、全上書きでは不具合が出てしまうです。。

    • jim912さん

      お疲れ様です :ニカ:

      やっぱり、optionsテーブルは除外してインポートなんですね。
      この間のWordBench埼玉で、optionsテーブル以外とよろずさんが言っていたので、念のため除外して統合化しました。

      補足ありがとうございました┏(o・ω・)))) ペコッ♪

コメントする

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

目次