WordPressで別ドメインのマルチサイト化
概要
WordPressにはマルチサイトという機能がある。WordPress 3.0から導入されたこの機能を使うことで,1個のWordPressで複数のサイトの運営が可能となる (Create A Network | WordPress.org)。
ただし,従来のマルチサイトはサブドメイン (a.example.com) かサブディレクトリー (example.com/a) のどちらかのタイプでしか使えず,全く別のドメイン (test.jpなど) はマルチサイトとして取り扱えなかった。
マルチサイトで別ドメインを管理する場合,「WordPress MU Domain Mapping – WordPress plugin | WordPress.org」のプラグインを使うことで実現でき,このプラグインを使ったマルチサイト化の手順を解説した情報がいくつも見つかる。
しかし,こちらのWordPress MU Domain Mappingは2016年のWordPress 4.7.18での対応で開発が止まっており,現在のWordPress 5での動作が検証されていない。
実は,WordPress 4.5で [WordPress Multisite Domain Mapping] という機能が実装され,マルチサイトで別のドメインにも対応できるようになった。
今回,「WordPress Multisite: How to properly map custom domains without a plugin –」のサイトでそのことを知った。こちらと公式サイトを参考に,実際にマルチサイトで別のドメインへの対応したので,手順を記す。
手順
事前に通常のサイトの公開と同じように最低限のDNSの設定をしておく。その他,サブディレクトリー型でもサブドメイン型でもどちらでも構わないので,WordPressでマルチサイトを事前に作成しておく。
今回はサブドメイン型のマルチサイト (*.senooken.jp) で新しく [cpp-schooler.jp] の別ドメインをマルチサイトに追加する。WordPress 5.4で確認した。
1. 「サイト ‹ サイトネットワーク管理: senooken.jp network — WordPress」にアクセスする。
2. [新規追加] を選び,サイトアドレス (URL) を仮で入力し,その他の項目はきちんと入力して [サイトを追加] を選び [すべてのサイト] を選ぶ。
今回はサイトアドレスに [cpp-schooler], サイトのタイトルに [C+スクーラー] と入力した。
3. [サイト] 画面に借りで入力したURL (cpp-schooler.senooken.jp) が表示されているので,[編集] を選ぶ。
4. [情報] タブの [サイトアドレス (URL)] に [http://cpp-schooler.senoken.jp/] と表示されているので,これを望むドメイン (今回はhttps://cpp-schooler.jp) に変更し,[変更を保存] を選ぶ。
5. 最後にCookieの設定を行う。wp-config.php
を編集して,以下の1行を追加する。
// Multisite
define ('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'senooken.jp');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
// Multisite Domain Mapping
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
マルチサイトの設定の下に追加しておくとよいだろう。
この設定がないと,上部の [参加サイト] から 追加したサイト (例: C++スクーラー) の管理画面にアクセスしてログインを試みると,以下のエラーが出る。
エラー: Cookie がブロックされているか、お使いのブラウザーで未対応のようです。WordPress を使うには Cookie を有効化する必要があります。
以上でWordPressのマルチサイトでの別ドメインの追加は完了となる。
結論
WordPressのマルチサイトで別ドメインの取り扱い方法を記した。
以前はプラグインが必要だったものが,標準機能に取り込まれたおかげでかなり簡単に実現できた。
マルチサイト自体あまり使っている人がいないのか,WordPress 4.5で追加された [WordPress Multisite Domain Mapping] についての情報があまりなかった。
基本的に,同じWordPressで複数のサイトを運営する場合,マルチサイトを使ったほうが効率がいいので,今回の内容を元にマルチサイトをどんどん活用していきたい。
こちらとても参考になります。ありがとうございます。質問失礼します。
5. 最後にCookieの設定を行う。wp-config.phpを編集して,以下の1行を追加する。
とありますが、こちらは親サイト側のwp-config.phpでしょうか。それとも新規で作成した(URLをサブドメインから別ドメインに変更したい)子サイト側のwp-config.phpでしょうか。
親サイトのwp-config.phpです。というより、マルチサイト化する場合、親サイトで子サイトを制御するため、wp-config.phpは親サイトの1ファイルしか存在しません。