マルチサイト化したWordPressから、子サイトのみを分離する方法。分離後は別ドメインのサブディレクトリへ引っ越す想定。
- 親サイト(メイン):ID=1
- 子サイト:ID=2 //こちらを別ドメインへ引っ越し
- 子サイト:ID=3
- etc
親サイトのみ分離する場合は、子サイトを消去して、マルチサイトを解除したほうが早そうである。
まず、子サイトを独立させる。
マルチサイトの子サイトの引っ越し手順
引越し先を準備する
引越し先の環境を準備する。
受け入れ先はルート直下に作成したサブディレクトリ型WordPressフォルダのtest
とし、新規データベースを作成する。
サーバーにフォルダを格納する
受け入れ先のサーバーのtest
フォルダに必要なフォルダをアップロードしていく。
マルチサイトの子サイトから移動させるフォルダはこちら。
- public_html
- wp-content
- plugins //移動する
- themes //移動する
- uploads
- 2022
- sites
- 2 //サイトID
- 2022 //移動する
- 2 //サイトID
- wp-content
マルチサイト内で共有されているプラグインフォルダとテーマフォルダを丸ごと移動する。
子サイトで使用していないプラグインやテーマフォルダは事前に削除しておくと、アップロード時間の短縮につながる。
メディアの移動は。uploads
フォルダのsites
フォルダ内がサイトIDごとに分割されているので、対象IDのフォルダを移行する。
メモ
- 親サイトの場合、uploads直下のフォルダ(年限津に仕分けている場合は年月名)に格納されている。子サイトの引っ越しでは不要なフォルダである。
データベースを移植する
親サイトのテーブル接頭辞は、mlt_
とする。
子サイトのテーブル接頭辞は、数字の2よりも大きな整数がサイトID として付与され、テーブル接頭辞はmlt_2_のようになるので、親サイトと子サイトのテーブルは見分けることができる。
では、シングルサウとのデータベースと子サイトのデータベースを比較してみる。
- シングルサイトのデータベース
- wp_commentmeta
- wp_comments
- wp_links
- wp_options
- wp_postmeta
- wp_posts
- wp_termmeta
- wp_terms
- wp_term_relationships
- wp_term_taxonomy
- wp_usermeta
- wp_users
- マルチサイトの子サイトデータベース
- mlt_2_commentmeta
- mlt_2_comments
- mlt_2_links
- mlt_2_options
- mlt_2_postmeta
- mlt_2_posts
- mlt_2_termmeta
- mlt_2_terms
- mlt_2_term_relationships
- mlt_2_term_taxonomy
マルチサイトの子サイトのデータベースには、wp_usermeta
とwp_users
が生成されていないことがわかるので、エクスポート時にいっしょにエクスポートし、本番phpMyAdminにインポートする。
データベースを修正する
mlt_2_options
のsiteurl
とhome
を修正する。
また、テーブル接頭辞mlt_2_
を変更する。
URLを置換する
Better Search Replace
でサイト内リンクを置換する。
メディアに画像を紐づける
Media from FTP
を使用する。
変更してもブラウザ表示上で思い通りにいかないときは、ブラウザキャッシュを削除する。