WordPressでマルチサイトの構築をする方法
ここ1年でWordPressでマルチサイトを構築を3件ほど手伝いましたので、そのやり方を記しておきます。
WordPressでのマルチサイトとは
WordPressでのマルチサイトは1つのWordPressと1つのデータベースで複数のサイトを運営できてしまう優れた「WordPressの機能」です。サーバーによってはWordPressやデータベースの数を制限しているところもありますから、気軽にサイトを増やすわけには行きませんでしたが、この機能を使えば簡単にブログやサイトを増やすことができます。
私はこの機能をWordPress4から使い始めましたが、2.8あたりからマルチサイト機能がサポートされたようです。その後も引き継がれましたし、設定方法もほとんど変わっていないようです。注意しなければならないのはマルチサイトの設定はWordPressをインストールした直後に行うのが良いということです。マルチサイトを宣言しないでサイトを運営し始めて途中からマルチサイトに切り替えることもできるようですがお勧めしません。データが壊れる可能性もありますから、必要ならばバックアップを取って万全の体制で行いましょう。
【追記】:その後すでに運営し始めているWordPressサイトをマルチサイト化しましたが、可能なようです。この場合「.htaccess」の内容をすでにマルチサイト化した他のサイトと同様になるように編集したら、リダイレクトが発生しなくなり子サイトも表示されるようになりました。
以下具体的な作業です。プラグインはすべて停止してから行います。
WordPressでマルチサイトの構築をする方法
- 「wp-config.php」を編集する
「wp-config.php」はWordPress管理画面では編集できませんから、レンタルサーバのFTPの機能を使うのが簡単です。またFileZillaやFFFTPなどのツールを使いローカルフォルダーにダウンロードして編集します。編集は次の1行を加えるだけです。define('WP_ALLOW_MULTISITE', true);
この1行を「wp-config.php」の中の「/* 編集が必要なのはここまでです」の前に書きます。
- ネットワークの設定
「wp-config.php」の設定が成功していればWordPress管理画面の「ツール」に「ネットワークの設定」という項目が新たに追加されています。その中の「ネットワーク作成」でサブドメインかディレクトリかを選んでインストールします。今回はディレクトリ型のほうを選びました。またWordPressをインストールした場所によってはディレクトリしか選択肢がない場合もあります。
「ネットワーク作成」をインストールするとマルチサイトに必要な方法が表視されますのでそれに従います。 - 「wp-config.php」をもう一度編集
指示通り「wp-config.php」をもう一度開いて編集します。 ネットワーク作成で指示された「define( 'MULTISITE', true );」 から始まる数行をコピーして「wp-config.php」に貼り付けます。 - 「.htaccess 」を編集します。
編集するのはWordPressをインストールしたディレクトリの「.htaccess 」です。「.htaccess 」がない場合は作成します。ドットで始まる奇妙なファイルですが、そのディレクトリのアクセス制限やユーザー認証、リダイレクト(自動転送)などを決定するファイルです。この中にネットワーク作成で指示されたファイルを書き加えます。
これで一旦ログアウトして、再びログインすると「参加サイト」>「ネットワーク管理者」からサイトの新規作成や各種設定ができるようになります。「ネットワークで有効化」しておきましょう。シングルサイトとは違い、マルチサイト化した以降、プラグインやテーマの管理はネットワーク管理者から行うことになります。
一度マルチサイトを構築すればあとはテーマやプラグインは「ネットワーク管理者」が随時追加・削除・変更を行うことができます。
無事ネットワーク管理ができるようになったら、再び必要なプラグインをサイトネットワーク管理から入れます。
このようにマルチサイトは最初は少しハードルが高いかもしれませんが、一度作ってしまえば通常のWordPressと同じように複数のサイトを簡単に扱うことができます。しかし良いことばかりではありません。プラグインやテーマが共通のものになりますので、それぞれのサイトの自由度は少なくなります。マルチサイトにする場合はこの点を考慮して導入するか決める必要があります。
最後に少しハマった注意点を。サイトのアドレスには、「page」「comments」「blog」「feed」などの英単語は先約があるので使えません。さらに投稿ページ、個別ページ、カテゴリ、タグなどの「スラッグと同じ単語」を使うとページが開かなくなる時があります。