0複数ブログをWordPressのサイトネットワーク機能を使って運営していましたが、訳あってシングルサイトに戻すことになりました。マルチサイト解除にあたって子サイトも存続させたかったので、一つのWordPressとして独立させた時の備忘録です。値にも注意サイトURLの変更ログインしてチェック分離元サイトからリダイレクトさいごに引っ越し先を用意するとりあえず分離するために、移動先を用意します。今のブログはKUSANAGIで環境構築しているので、サブドメインを使って同じサーバーに追加でプロビジョニングしました。[サブドメイン設定]からサブドメインを追加できるので、そこにWordPressをインストールするか、既存のドメインのサブディレクトリにぶら下げればいいでしょう。インストールできたらそのままで大丈夫です。本当ならこの記事で紹介している方法でサクッと引っ越ししたかったのですけど、マルチサイトには対応していない(してるけど$199必要)だったので、手動で移植します。気を付けるポイントさえ押さえておけば、そこまで難しい作業ではありません。必要なファイルを移動まずはファイル群を移植して、WordPressを同じような環境にしてあげます。テーマやプラグイン、アップロードした画像など、必要なファイル群を新しい環境にアップロードしていきましょう。テーマとプラグインはそのままwp-content以下のthemesとpluginsをコピーすればよいのですが、画像などは環境によって保存場所が異なります。wp-content/uploads/sites/【子サイト番号】/僕の環境では上記のディレクトリに保存されていましたので、それを分離先サイトのwp-content/uploads/以下にコピーしました。ファイルの移植が済んだら、データベースを流し込んでいきます。データベースを移植サイトネットワークを使っていると、子サイトのテーブルは親サイトのデータベースにねじ込まれています。これが厄介なので、慎重に作業しましょう。必要なテーブルだけエクスポート独立させたい子サイトの分だけ、テーブルをエクスポートします。親サイトのテーブルの接頭辞(プレフィックス)が【wp_】だとしたら、例えばサイト番号2の子サイトの接頭辞は【wp_2_】になっています。子サイトを分離する時は、この接頭辞のついたテーブルをエクスポートすればいいわけです。下で説明するように、ちょっとだけ例外があるのですが。ユーザー絡みと設定だけは単独それぞれの子サイト分のテーブルがごちゃごちゃ作られるくせに、ユーザー絡みのとオプションのテーブルだけは全てのサイトで共用になっていました。これもあわせて移植しておかないと、管理者不在のサイトが出来あがってしまいます。忘れずにuserとusermeta、optionsテーブルもエクスポートしましょう。置換アップロードしたメディアファイルは、ディレクトリ構造が変わってしまいました。メディアライブラリとアップロードファイルの整合性がとれてなかったりの問題があって、そのままではアイキャッチとか記事中の画像が全滅してしまいますので、パスを書き換えてあげる必要があります。エクスポートしたsqlファイルを開いてURL関係を一気に置換しましょう。サクラエディタなどの置換機能でガーッとやっつけます。僕の例だとwp-content/uploads/sites/【子サイト番号】/からwp-content/uploads/に置換。保存の際は、文字コードとかが変わってしまわないように気をつけましょう。流し込み引越し先のデータベースに、さっき書き換えたsqlファイルをインポートします。Xserverなら自動的にphpMyAdminが入っていると思いますので、そのままインポートできますね。僕はConoHaでKUSANAGIを使っているので、そのままではデータベースを簡単に弄れる環境がありません。phpMyAdminを手動でインストールしました。接頭辞の整形インポートが終わって、データベースは完了......というわけにはいかんざき。プレフィックスがおかしなことになっているので、直します。忘れがちなのが、optionsテーブルのoption_nameフィールド。ここには子サイト番号の振られた値が記録されているので、忘れず書き換えましょう。ここを直しておかないと、リダイレクトされて管理画面にアクセスできなくなります。SQLクエリでこんな風に投げれば特定できますよ。引越し先のWordPressに認識させるサイトURLをデータベースから直接書き換えます。ヘタに管理画面にログインしてぶっ壊れるのも嫌ですからね......。SQL文で検索するには下の2行。'home'普通はIDの1番目と2番目にいるので、探すまでもないと思いますけど......。一通り確認してみて、問題なければ子サイトの分離は成功です。あとは分離元の子サイトへのアクセスを新サイトに流すためにリダイレクト設定したり、いらなくなった子サイトを削除したりの作業を行いましょう。分離元サイトからリダイレクト旧サイトへのアクセスを、新サイトに301リダイレクトしておきます。僕の場合はサブディレクトリからサブドメインへの移動なので、nginxのconfファイルにこんな記述を加えました。https://【移転先のサブドメイン】.$host$request_uri;}これで、古いURLにアクセスしてくれたユーザーさんを、新しいURLに誘導できますね。その他Analyticsやサチコ、場合によってはAdSenseなどの設定も見直しましょう。さいごにマルチサイトの設置はそこまで苦戦しませんでしたが、作成した子サイトを独立させようとすると大変でした。サーバー環境とかにもかなり左右されると思いますので、難しいと感じたら無理せず業者に委託するなどした方がいいかもしれません。大事なサイトは単独のWordPressで作っておくと間違いないです。:WordPress関連記事たちこの記事を書いた人はるしか雑食系サラリーマンゲーム・漫画・アニメ・クルマ・ガジェットなど多趣味な雑食系で、わからないこと・気になることがあればすぐ調べないと気が済まないタイプ。集めた知識を独自の観点でお伝えしていきます。