マルチサイトのWordPressの子サイトを分離し、シングルサイトとして独立させる方法
WordPressのマルチサイトは個々のサイトとして分離独立できます。
マルチサイトのメインサイト(親サイト)は、シングルサイトにすることで簡単に設定できます。
ただ、子サイトを独立する場合は少々複雑な手順が必要ですが、完全に独立させることができます。今回マルチサイトのWordPressの子サイトを分離し、シングルサイトとして独立する手順について詳しく解説していきます。
目次
1. マルチサイトの子サイトのデータはどこにあるの?
WordPressをマルチサイトにした場合、一部のデータを共有しますが、サイトごとに独立したデータを持っています。マルチサイトの子サイトを独立させるためには、その子サイトに必要なデータだけを移行し、通常のWordPressのカタチにすれば、シングルサイトのWordPressとして動作します。
では最初に、マルチサイトの子サイトのデータ(ファイルデータ、データベースのデータ)がどこにあるかを見ていきます。
ファイルデータ
テーマとプラグインは共通のものなので「plugins」「themes」のデータを使います。
画像データは子サイトごとに違い「uploads/sites/サイト番号」へ保存されています。
例えば子サイトがsite2の場合は以下のディレクトリに画像データが保存されています。
データベースのデータ
サイト番号によって保存されるテーブル名が違います。
site2の場合はwp-2がついているテーブルです。
ただ共有部分のデータが「user」と「usermeta」にあるので、それも一緒に移行します。
2. 新しいサイトにWordPressをインストール
では早速作業を進めて行きます。
最初に、移行するサーバーもしくはディレクトリに、WordPressを新規インストールしておいてください。
3. ファイルデータの移動
下記のファイルデータを移動します。
wp-content/themes/ ⇒テーマ
wp-content/plugins/ ⇒プラグイン
wp-content/uploads/sites/【子サイト番号】/ ⇒画像のデータ
画像のデータは移行先サーバーの下記のディレクトリにアップロードします。
wp-content/uploads/
4. データベースの移動
データベースのエクスポート
移行元サイトのphpmyadiminからデータをエクスポートします。
親サイトのテーブル接頭辞が「wp」であれば、site2の場合の接頭辞はwp_2になっています。
wp_2で始まるテーブルと共用部分のテーブル(user、usermeta)を選択し、エクスポートしてください。
データベースの修正
エクスポートしたsqlファイルをエディターで開きます。
wp_2_
をwp_
に置換してください。
データベースのインポート
移行先サイトのphpmyadiminを開き、データをインポートしてください。
5. データベースの置換
サイトURLをデータベースから直接書き換えます。
「ドメイン名」と「画像ファイルのパス」を置換します。
ドメイン名:移行元サイトのURL⇒移行先サイトのURL
画像ファイルのパス:wp-content/uploads/sites/【子サイト番号】/⇒wp-content/uploads/
なお、データベースの置換には「Search-Replace-DB-master」を使います。
Search-Replace-DB-masterの詳しい使い方は下記をご覧ください。
https://okuden-labo.com/ftp-wordpress
6. 最後に
画像の表示がうまくいかない場合は、マルチサイト内の他のサイトの画像を貼り付けて使っていることが原因でそのようになることがよくあります。画像のソースコードを確認し、Search Regexなどでサイト全体を検索してみてください。