ワードプレスで効率よくサイトやブログを作成するにはネットワークインストールが便利です。1インストールで複数のサイト・ブログを作成できるようになります。今回紹介するのはサブディレクトリ形式です。なお、ワードプレスで複数のサイトを作成することは、「マルチサイト化」や「ネットワークの有効化」とも呼ばれています。当ページでは、マルチサイト化と表記しますね。

それでは行ってみましょう。

サブディレクトリ形式の注意点

サブディレクトリ形式のインストールは新規インストールでなければインストールできません。

新規インストールではないため、WordPress ネットワーク内のサイトはサブドメインを使う必要があります。 メインサイトをサブディレクトリにインストールしている場合、修正したパーマリンク構造を使う必要があり、現存リンクを壊してしまう可能性もあります。

ワードプレスのマルチサイト化

ワードプレスをマルチサイト化するのあたって、やることは大木分けて以降は、自己責任でお願いします。

ファイル「wp-config.php」の編集

ワードプレスをインストールした後、wp-config.phpというファイルに「

define('WP_ALLOW_MULTISITE', true);

」を追加します。私が追加している箇所は以下の通りです。

[...]
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');

define('WP_ALLOW_MULTISITE', true);

/**#@+
 * 認証用ユニークキー
[...]

ファイル「wp-config.php」と「.htaccess」にソースコードを追加

wp-config.phpの編集と保存が完了したら、ワードプレス管理画面の左メニュー「ツール → ネットワークの作成」をクリックします。さらにサブディレクトリを選択してインストールボタンをクリック、画面に表示されている通り、ファイル「wp-config.php」と「.htaccess」にソースコードを追加します。

・wp-config.php

[...]
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define('DB_COLLATE', '');

define('WP_ALLOW_MULTISITE', true);

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', '[ドメイン名]');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

/**#@+
 * 認証用ユニークキー
[...]

・.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

を以下のように変更します。

# BEGIN WordPress

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]


# END WordPress

ログインしなおすとネットワークの有効化と設定が完了、マルチサイト化が完了です。

コアサーバーは# BEGIN WordPressの前に記述する必要があるようです。

ページの自動転送設定が正しくありません…

子サイトを作成してダッシュボードを表示しようとすると「ページの自動転送設定が正しくありません このアドレスへのリクエストに対するサーバの自動転送設定がループしています」というメッセージが表示された場合、.htaccess内の[ドメイン名]/$2を$2に修正するとダッシュボードが表示されるようになります。

サブディレクトリ形式でインストールした場合、子サイトのディレクトリ名とトップディレクトリの固定ページが重複するのを避けるため、パーマリンクを”/”のディレクトリ形式ではなく”.html”のファイル形式にして対応しています。

コアサーバーで「ページの自動転送設定が正しくありません」となる場合はファイル.htaccessの「# BEGIN WordPress」より前にソースコードを記述するとなおりました。

ページの自動転送設定が正しくありません

マルチサイト化の解除 (もとに戻すには?)

マルチサイト化したワードプレスサイトをもとに戻す場合は、以下のページを参考にしています。実際にやってみたのですが、思ったよりも簡単でした。データベースを操作するときは慎重に!

マルチサイトを解除してシングルサイトに戻す方法 – ほめぶろ