wordpressでマルチサイト化する事が多くなってきなので書いておく。
マルチサイト機能を使うと、1サイトに複数のテーマを使う事ができる。
やり方は2通りある。
1つ目はサブディレクトリ式
http://gm-moja.comのURLに対して
例えば、全く別のテーマを使って英語のページを作るとする。
そうすると
http://gm-moja.com/eg/ のようなドメインになるのがサブディレクトリ形式。
http://gm-moja.com/マルチ1/
http://gm-moja.com/マルチ2/
と増やして行くことができる。
2つ目のやり方はサブドメイン式。こちらは
http://gm-moja.com/のドメインに対して英語サイトなら
http://eg.gm-moja.com/ のような形になり
http://マルチ1.gm-moja.com/
http://マルチ2.gm-moja.com/のように増やして行く。
今回はサブディレクトリ式のやり方で行う。
※ただし、すでに運用中のサイトの場合サブディレクトリの設定はできない(やり方はあるが、ややこしい)ので、可能な限りサイトを構築した時点で設定することをお勧めします。
1、wordpressのマルチサイト機能を有効化する
wordpressのフォルダにある「wp-config.php」に次の一行を記入する。
[define ('WP_ALLOW_MULTISITE', true);]
記入例
[php]
define('WP_DEBUG', false);
/** マルチサイト機能の有効化 */
define ('WP_ALLOW_MULTISITE', true);
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */
/** Absolute path to the WordPress directory. */
[/php]
これでマルチサイト機能が有効になる。
するとダッシュボードの管理メニュー「ツール」のメニューの中に
「ネットワーク」という項目が表示されるようになる。
その「ネットワークの設置」をクリックすると「WordPress サイトのネットワークの作成」画面が開く
ここでは「サブディレクトリ」を選択して「インストール」をクリックします。
次の画面ではサイトネットワーク作成するために必要な手順が表示されます。
「wp-config.php」と「htacces」に追加するためのコードが表示されていますので、必ず閉じないで開いたまま作業するか、先にコピーして保存しておきましょう。
手順1では「wp-config.php」にコードを記載されているコードを挿入します。
[php]
/** マルチサイト機能の有効化 */
define ('WP_ALLOW_MULTISITE', true);
/** ネットワーク設定の追加 */
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'moja-asia.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */
[/php]
最初に追加した1行の下に管理画面からコピーして貼り付けました。
7行目の「moja-asia.com」の部分はそれぞれのURLになります。
手順2では「htacces」を書き換えます。
まず最初に「htacces」を開くと以下のような記載になっています。
[php]
# 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
[/php]
上の3行目から8行目の部分を管理画面に表示されているコードに置き換えてみました。
このコードはサイトによって多少異なりますので必ずご自分の管理画面のコードをコピペして下さい。
[php]
# BEGIN WordPress
<IfModule mod_rewrite.c>
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]
</IfModule>
# END WordPress
[/php]
以上で設定完了です。
いったんログアウトして再ログインしますので画面右下の「ログイン」をクリックするとログアウトしてログイン画面に移行されます。