この記事について
複数のサイトを一つの管理画面で運用できる WordPressマルチサイト機能 の構築に挑戦しました。
効率化のために導入を決めたのですが、いざ作業を始めると通常のWordPressインストールとは勝手が全く異なり、アプリケーションよりも インフラ側の理解 が求められる作業になりました。
これから挑戦する方向けに、実際にハマった箇所を事前チェックポイントとして3つに整理します。
落とし穴1:サブドメインはWordPressより先に作る
マルチサイトでは、管理画面から「サイトを追加」すればサブドメインのサイトができあがる……と考えていると詰まります。
WordPress側でサイトを追加する前に、サーバーのコントロールパネルで対象のサブドメインを物理的に作成しておく必要があります。 WordPressはあくまで、そのサブドメインにリクエストが届いた前提で動くためです。
順番を間違えると、管理画面上はサイトが存在するのにアクセスできない、という状態になります。
実際の作業順序は次の通りでした。
- サーバーのコントロールパネルで
blog2.example.comのサブドメインを作成 - DNSにAレコードを追加(すでにワイルドカードDNSが効いている場合は不要)
blog2.example.com. IN A 203.0.113.10
wp-config.phpに以下を追記してネットワーク機能を有効化
define( 'WP_ALLOW_MULTISITE', true );
- 管理画面の「ネットワークの管理」から新規サイトを追加すると、
wp-config.phpに以下が自動追記される
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
define( 'DOMAIN_CURRENT_SITE', 'example.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );
落とし穴2:SSLは子サイト作成「前」に適用しておく
これが一番厄介でした。
子サイトを追加してからSSL化しようとすると、リダイレクトループ に代表されるトラブルにつながります。WordPressは各サイトのURLをデータベースに保持しているため、後からhttpsに切り替えると、保存済みのURLとサーバーのリダイレクト設定が食い違うためです。
対策としては、子サイトを作る前に ワイルドカードSSL などを適用し、*.example.com がhttpsで応答する状態を先に作っておくこと。これだけで作業がかなり素直に進みます。
Let's EncryptでワイルドカードSSLを取得する場合は、DNS認証を使う必要があります(DNSレコードを操作できる権限が必要)。
certbot certonly --manual --preferred-challenges dns \
-d example.com -d "*.example.com"
これを子サイトを1つも作る前に済ませておくのがポイントです。
落とし穴3:ディレクトリ構造は通常構成と違う
マルチサイトでは、内部的なファイル参照やシンボリックリンクの扱いが通常のWordPressと異なります。
とくにアップロードした画像の配置が変わるため、ここを曖昧にしたまま進めると 画像が表示されない という不具合に直面します。
# 通常のWordPress
wp-content/uploads/2026/07/image.jpg
# マルチサイトの子サイト(サイトID=3)
wp-content/uploads/sites/3/2026/07/image.jpg
親サイト(サイトID=1)だけは例外的に通常構成と同じパスのままなので、「親サイトでは動いたのに子サイトで画像が出ない」という事象が起きやすいです。移行やバックアップの際にも影響する部分なので、構造を理解してから触るのが結果的に早道でした。
動作環境
本記事の手順は WordPress のマルチサイト機能(バージョン 3.0 以降で利用可能)を対象にしています。管理画面のバージョン情報、または次のコマンドで手元の WordPress・PHP のバージョンを確認できます。
# WP-CLI が使える場合
wp core version
# サーバー側の PHP バージョン
php --version構築してみて
サーバー側の「仕込み」を丁寧に行うことで、ようやく安定したマルチサイト環境を構築できました。
今回の経験で、WordPressのシステム構造とサーバー構成の関係をより深く理解できたのが収穫です。サイトごとにログインし直す手間がなくなり、管理コストが大きく下がったため、これからはコンテンツ制作に集中できそうです。
参考
- Create A Network(WordPress 公式) — マルチサイトを有効化する正式な手順