WordPressサイトをサブディレクトリ形式でマルチサイト化する方法

wordpress

マルチサイトとは一つのドメインの中に複数のサイトを作る形式です。 WordPressにおいてもマルチサイト制作機能がサポートされており、一つのWordPress・データベースの中に複数のサイトを作ることができます。マルチサイトの詳細については以下の記事をご参照ください。

マルチサイトとは

一つのサイトに雑多な話題が詰め込まれ過ぎて内容が煩雑になった、サイトを沢山作りすぎて運用が大変などと言った場合に、マルチサイト化は一定の解決手段となります。 もちろんマルチサイト化が絶対の回答であるなんてことはありませんが、試してみる価値は十分にあるでしょう。

前提条件

サブディレクトリ形式でのマルチサイト化は2ヶ月以上前の投稿があるサイトには適用できません。
該当記事がある場合、記事の投稿日付を書き直すか、一旦退避させて削除する必要があります。

また自己裁量の少ないレンタルサーバなどでは設定次第でマルチサイト化ができない場合もあります。 事前にご確認の上作業してください。

マルチサイト設定を行う

wp-configの設定を変更する

WordPress直下にある設定ファイル「wp-config.php」を修整します。
以下の記述をファイル内の任意の場所に追加してください。

wp-config.php

/** マルチサイト化 */
define ('WP_ALLOW_MULTISITE', true);

サイトのネットワークの作成画面に遷移する

全てのプラグインを停止し、ブラウザを更新してください。
wp-configの設定変更により[ツール]→[ネットワークの設置]が追加されています。 クリックしてサイトのネットワークの作成画面に遷移してください。

multiple-site-subdirectory01

マルチサイト形式を選択してインストールする

サブディレクトリが選択されている事を確認し、インストールボタンをクリックします。

multiple-site-subdirectory02

「wp-config.php」と「.htaccess」のバックアップを取る

インストールボタンをクリックすると、下記の画面に遷移します。

multiple-site-subdirectory03

これからこの2ファイルを修正するのですが、何かあった時に差し戻せるように「wp-config.php」と「.htaccess」のバックアップを取っておきましょう。 「.htaccess」は隠しファイルなので、FTPソフトによっては初期設定では見えないので気を付けましょう。

wp-configを修正する

wp-config.phpの「/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。*/」と書いている行より上に下記の記述を追加します。
※DOMAIN_CURRENT_SITEの’example.com’部は該当サイトのドメイン名を記述してください。

wp-config.php

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

.htaccessを修正する

.htaccessのWordPressに関する記述を上書きする形で下記を記述します。

.htaccessは使用環境によっては画面に表示されているものそのままでは正常に機能しない場合があります。 私の環境では以下のコードで設定しています。

.htaccess

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*.php)$ $2 [L]
RewriteRule . index.php [L]

マルチサイト設定の反映を確認する

一旦ログアウトして再ログインし、左上に「参加サイト」と表示されていればマルチサイト化は成功です。

multiple-site-subdirectory04

アマルウェブ HOME