WordPress特集 - マルチサイトの構築
公開日:2021年11月15日
WordPress マルチサイト機能では、単一の WordPress インスタンス上に複数のサイトを持つことができます。WordPress のインストールが1回で済みテーマやプラグインも共有して使えるため、リソースを有効活用できますし、複数サイトのメンテナンスも効率的になります。
【記事執筆時の環境】
WordPress 5.8
【参考ページ】
サポート - マルチサイトネットワーク作成の前に
サポート - ネットワークの作成
サポート - マルチサイトのネットワーク管理
【参考記事】
WordPressマルチサイト機能でWebサイトを構成する
マルチサイトでできること
- メインサイトに加え、他のサイトを管理画面からいつでも追加できます。例えば同じ企業内の各支社で別々のサイトを持ちたい場合などに便利です。
- サイトネットワークを作成し、複数サイトで WordPress のコアファイルを共有します。従って WordPress 本体 / テーマ / プラグインのインストールやアップデートが1回で済みます。これによりサイト管理者の労力を大幅に低減することが可能です。
- ネットワーク内の別サイトのコンテンツを取得し表示することができます。
マルチサイトの特徴
- 追加されたサイトは、サーバー上に自身のディレクトリを持ちません。URL で示されるのとは違う仮想的なサイトになります。
- コンテンツはサイトごとに独立しています。
- メディアアップロード用としては、インストールディレクトリ内にサイト個別のディレクトリを持ちます。つまりメディアファイルは共有しません。
- データベースは複数サイトで1つだけ使います。ただしサイトごとに作成されるテーブルもあります。
- テーマとプラグインはサイト個別で有効化はできますが個別でのインストールはできません。インストールはネットワーク全体で行います。
- 「特権管理者」という最上位の権限グループが追加されます。特権管理者はサイト全体のネットワークに関する設定ができる唯一のグループです。それに伴いシングルサイトで言うところの「管理者」は、いくつか権限が削除されています。
マルチサイトのタイプ
マルチサイトにはタイプとして、下記の2種類があります。
(1)サブドメイン形式
(2)サブディレクトリ形式
サブドメイン形式は、https://sub1.example.com のような URL になります。
サブディレクトリ形式は、https://example.com/sub1 のような URL になります。
【注意点】
- サーバーによっては利用制限があり、どちらか一方にしか対応していない場合もあります。
- ドメインマッピングで、追加したサイトをメインサイトとは全く異なるドメインとすることもできます。
- WordPress のインストールから1か月以上経った既存のシングルサイトでマルチサイト化する場合、サブディレクトリ形式は選択できません。
- サブドメイン形式は localhost では選択できません。
マルチサイトの構築手順
マルチサイトは既に稼働しているシングルサイトで有効化することもできます。ここでは新しく WordPress をインストールして、ただちにマルチサイトを有効化する手順を示します。
- WordPress をインストールしたら、一旦ログアウトします。
wp-config.php を開き「編集が必要なのはここまでです !」のすぐ上に、下記コードを追加します。
define('WP_ALLOW_MULTISITE', true); - 管理画面にログインし、メニューから、[ツール]>[サイトネットワークの設置] をクリックします。
[サブドメイン] か [サブディレクトリ] のどちらかにチェックを付け、[サイトネットワーク名] [メールアドレス] を入力して [インストール] をクリックします。今回は [サブディレクトリ] を選択してインストールします。 - 下記のようなコードが2つ表示されますので、それぞれ wp-config.php と .htaccess に追加します。
コードを追加したら管理画面にログインし直します。ツールバーに [参加サイト] と表示されているはずです。 - 現在はメインサイトしかありませんので、次にもうひとつサイトを追加してみます。
左上の [参加サイト]>[サイトネットワーク管理]>[サイト] をクリックします。
[新規追加] をクリックし、下記画面で [サイトアドレス] [サイトのタイトル] [管理者メールアドレス] を入力して [サイトを追加] をクリックします。
- サイトが追加され、コンテンツ入力はそれぞれの管理画面から行えるようになります。
マルチサイト管理での注意点
ユーザーの権限
管理者権限もシングルサイトと違い、一部削除されています。管理者でもテーマやプラグインをインストールすることはできません。特権管理者のみがこれらのタスクを実行できます。
メインサイトのパーマリンク構造
メインサイトのパーマリンク構造として、接頭辞に 'blog' がつきます。
この接頭辞を変更したり削除するには、サイトネットワーク管理のメインサイト設定画面から編集します。
アップロードされたファイルのパス
メインサイトでは、アップロードしたファイルはこれまで通り /wp-content/uploads/ に保存されます。それ以降に作成したサイトでは、/wp-content/uploads/sites/ フォルダ下に、サイト ID と同じ名前のフォルダが作成され、その中に保存されます。
アップロードファイルの最大サイズ
一般的には、php.ini 内の [upload_max_filesize] で値が指定されていますが、マルチサイトの場合は、[サイトネットワーク設定]-[アップロード設定] でもサイズが制限されています。
テーマ
すべてのテーマがネットワーク全体にインストールされます。テーマのコードを編集すると、そのテーマを使用しているすべてのサイトに影響します。ただし各サイトはカスタマイザーを使用してテーマごとの設定をすることができます。設定はデータベース内のサイトごとのテーブルに保存されます。
テーマをサイトネットワークで有効化すると、各サイトでそれぞれそのテーマを有効化できるようになります。サイトネットワークで無効化すると、そのテーマは各サイトのテーマ一覧画面に出てきません。
プラグイン
プラグインはサイトネットワークのプラグイン画面からのみインストールできます。
サイトネットワークで有効化されたプラグインはすべてのサイトで有効化され、各サイトのプラグイン画面からは停止できません。
サイトネットワークで有効化されていないプラグインは、各サイトのプラグイン画面からそれぞれ有効化できます。
なお、マルチサイトでの動作を保証していないプラグインもあるので注意しましょう。
コンテンツの共有
ネットワークに追加されたサイトは、それぞれ別のサイトですので、デフォルトではコンテンツを共有しません。関数 switch_to_blog を使い、他のサイトからコンテンツを取得することはできます。
«次の特集記事» コンテンツのインポート・エクスポート
«前の特集記事» 子テーマの使い方
スポンサーリンク