マルチサイトの運営はこれまで、サブドメイン型・サブディレクトリ型どちらも経験済で、結構なれているつもりだったのですが、考えると今までのケースは、初めから(インストール時から)マルチサイトにしていたので、運営中のサイトを途中からマルチサイトにした経験はありませんでした。なんと。これ以外と難しかった。いくつか躓きましたので、次回以降の反省に。

新規インストール以外の場合は、サブドメイン型になってしまう

マルチサイト化する場合、wp-config.phpの「「/* 編集が必要なのはここまでです」の前」に「define(‘WP_ALLOW_MULTISITE’, true);」を追加することから始まります。これを追加すると、管理画面で「ツール」に「ネットワークの設定」が新しく追加され、ここでサブドメイン型かサブディレクトリ型を選ぶのですが・・・

新規インストールではないため、Wordpressネットワーク内のサイトはサブドメインを使う必要があります

と書かれていたために、そのままううかりスルーしてしまいました。このメッセージ、1ヶ月以上前の投稿があると出るそうです。「!」仕方がないので、DB上で投稿の日付を全部1ヶ月以内に変更しました。私の場合はテストサイトだったので、投稿の日付を変えても問題なかったのですが、通常の場合は許されないと思いますので、まずデータベースの「wp_posts」テーブルのバックアップをとり、投稿の日付を1ヶ月以内に変更したものを別途作成して入れ替え、マルチサイト化し、最後に元の「wp_posts」に入れ替えるという流れになるのかな。

マルチサイト化をやり直す場合は、データベースの不要なテーブルを一旦削除する必要がある

一旦サブドメイン型にしてしまうと、管理画面から切り替えは出来ないし、wp-config.phpや.htaccessをもとに戻してもエラーが出るため、データベース上から不要なテーブルを削除し、やり直す必要があります。不要なテーブルは次のような名称のものです。(シングルサイトのワードプレスにはないので、パッと見でわかります。接頭辞はサイトの設定によって違う場合があります)

  • wp_blogs
  • wp_signups
  • wp_site
  • wp_sitemeta
  • wp_registration_log

結構ありますね。バックアップをとって削除しましょう。ちょいドキドキしますが。