WordPress マルチサイト構築方法 – サブディレクトリ

WordPress マルチサイト機能とは

ひとつのサーバ、ひとつのドメイン、ひとつのWordPressプログラムで複数のサイトを運営できる機能です。WordPressのマルチサイト機能には2種類あります。

  1. サブディレクトリ型 example.com/site1 example.com/site2 example.com/site3…..
  2. サブドメイン型   site1.example.com site2.example.com site3.example.com……

今回は、ひとつのWordPressで階層によっては違った雰囲気を出すために、個別のテーマを使うような場合を想定し。サブディレクトリ型のマルチサイト機能を説明します。

サブディレクトリ型 マルチサイトとは

例えば、example.comというサイトをWordPressで構築します。そのサイトの中のexample.com/site1やexample.com/site2を個別のサイトとして取り扱えるのです。

マルチサイトの設定方法

設定ファイルの編集

使用しているサーバのWordPressをインストールしているディレクトリに wp-config.php という設定ファイルがあります。このファイルを編集します。

/wordpress/wp-config.php の86行目あたりに

/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */

このような行があります。この行の上あたりに

define('WP_ALLOW_MULTISITE', true);

という1行を追加しましょう。

/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */ より上であればどこでも構いません。

wp-config.php 記入例

/**
* 開発者へ: WordPress デバッグモード
*
* この値を true にすると、開発中に注意 (notice) を表示します。
* テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用することを強く推奨します。
*
* その他のデバッグに利用できる定数については Codex をご覧ください。
*
* @link http://wpdocs.osdn.jp/WordPress%E3%81%A7%E3%81%AE%E3%83%87%E3%83%90%E3%83%83%E3%82%B0
*/
define('WP_DEBUG', false);

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

/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */

サイトネットワークの設置

wp-config.php の編集が終わり保存が完了したら、WordPress のダッシュボードを再読み込み・リロードしてください。

ダッシュボード > ツール の項目に『ネットワークの設置』というメニューがあらわれますので、選んでクリックしてください。

サイトネットワークの作成

これからサイトネットワークのインストールを行います。ここでは、サブディレクトリ型を選びます。

わかりやすいサイトネットワーク名と管理者もメールアドレスを入力したら、インストールボタンをクリックしてインストールを行ってください。

サイトネットワークの有効化

サイトネットワーク作成機能を有効化するために、以下の二つのファイルを修正します。

  • 最初に行った設定ファイル・wp-comfig.phpの設定箇所にさらに追加します。
    define('MULTISITE', true);
    define('SUBDOMAIN_INSTALL', false);
    define('DOMAIN_CURRENT_SITE', 'demo.japanbookmark.com');
    define('PATH_CURRENT_SITE', '/');
    define('SITE_ID_CURRENT_SITE', 1);
    define('BLOG_ID_CURRENT_SITE', 1);
    設定例
    /* マルチサイトの設定 */
    define('WP_ALLOW_MULTISITE', true);
    define('MULTISITE', true);
    define('SUBDOMAIN_INSTALL', false);
    define('DOMAIN_CURRENT_SITE', 'demo.japanbookmark.com');
    define('PATH_CURRENT_SITE', '/');
    define('SITE_ID_CURRENT_SITE', 1);
    define('BLOG_ID_CURRENT_SITE', 1);/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */
  • WordPressを設置したディレクトリの一番上の階層(indec.phpが有る階層)に.htaccessというファイルがあります。そのファイルを修正します。
    WordPress設置時に自動的に書き込まれた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]
    .htaccess 編集前
    # BEGIN WordPressRewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]# END WordPress
    .htaccess 編集後
    # BEGIN WordPress
    #
    # RewriteEngine On
    # RewriteBase /
    # RewriteRule ^index\.php$ - [L]
    # RewriteCond %{REQUEST_FILENAME} !-f
    # RewriteCond %{REQUEST_FILENAME} !-d
    # RewriteRule . /index.php [L]
    ## END WordPressRewriteEngine 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]

設定ファイルの修正・保存が完了したら再度、WorsPressの管理画面にログインしなおします。

WordPress マルチサイト機能の設定完了

再度ログインを行ったら、管理画面に以下のマルチサイト機能(参加サイトの文字)が現れます。