【wordpress 複数サイト】 ディレクトリ別にする

ブログ記事が多くなって煩雑になってしまったので、テーマごとにディレクトリ内で小サイトを作って運用することにする。

wp-config.phpに定数挿入

以下の定数をwp-config.phpに入れる。

define('WP_ALLOW_MULTISITE', true);

通常は書かれてないので、新たに入力↓

定数

WordPress サイトネットワークの作成 ページ

ここでまずはディレクトリごとに複数サイトを作る設定をおこなって、後ほど個別の小サイト設定をする。

WP管理画面でツール > サイトネットワークの設置が追加されているのでアクセスする。

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

https://localhost/wp-admin/network.php

全プラグインを無効化

するとプラグインを無効化しないと次に進めないらしいので、全部のプラグインを停止にする。

全プラグインを無効化

サブドメイン・サブディレクトリ選択

ここで、サブドメイン型かサブディレクトリ型の複数サイトかを選ぶ。以下画像ではLocalhostで試しているのでサブディレクトリ型しか選べなかった。

サブドメイン・サブディレクトリ選択

wp-config.php・.htaccess 追記

再度wp-config.phpに追加書き込みして、.htaccessにも追記する必要がある。

wp-config.php・.htaccess 追記

wp-config.phpに追加

内容はディレクトリ型で複数サイト運用ということですね。

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

.htaccessに追加

こちらは1・2行目が既存の.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]

最初にあった.htaccessの内容は通常なし。

# BEGIN WordPress
# END WordPress

.htaccessに追記するとAccess forbidden! Error 403発生!

原因はRewriteEngineをOnにしたときにOptions FollowSymLinksをつけないといけないらしいので追記。

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

これでうまく行った。

複数サイト 管理画面の構成

ここまで設定して再度ログインすると、左上メインサイト名があった左側に「参加サイト」という項目が追加された。

メインサイト 管理画面

以下がメインサイトのURL、以前と項目は変わらず同じ。参加サイトのリンクのみ追加された状態。

参加サイト メインサイト

https://localhost/wp-admin/index.php

サイトネットワーク管理画面

こちら↓は、メインサイトを含めた全てのサイトを管理するページ。ここで新規サイトを作成可能。

参加サイト サイトネットワーク管理:ディレクトリサイト

https://localhost/wp-admin/network/index.php

サイトネットワーク管理画面のメニューも通常のWPのメニューと変わって「サイト」という項目が追加、その他通常は外観 > テーマのテーマがメニューから直接編集可能。

サイトネットワーク メニュー

設定の項目も以下のように変わっている。

WP サイトネットワーク 設定項目

サイトネットワーク管理画面で新規サイト作成

サイトから新規追加を押して新しいサイトを作成する。

サイトネットワーク管理画面 サイト作成

サイトのパスとタイトルとメルアドを入力してサイトを追加する。

サイトネットワーク管理画面 サイト作成 項目

以下のようにサイト作成完了した。

サイトネットワーク管理画面 サイト作成 完了

https://localhost/test/wp-admin/

URLは上記にアクセスするとTESTサイトのWP管理画面に行ける。

メインサイトと別のレイアウトにする時

メインのサイトと切り離して別のレイアウトで運用する時はテーマを別のにする。

その時、各サイトの外観 > テーマではなく、サイトネットワーク管理のテーマで新規テーマをアップロードする。

https://localhost/wp-admin/network/themes.php

同じ小テーマ入れてもインストールできない

当たり前ですが・・・同じ子テーマを使おうとしてもアップロードできませんでした。

テーマ変更

Simplicity2-childの名前を変更してアップロード

Simplicity2の子テーマ
テーマをカスタマイズするなら親テーマの直接編集はお勧めできません。というのも、ダウンロードページで配布しているテーマファイルを直接編集すると、アップデート時に編集下部分がが上書きされ、せっかくのカスタマイズが全て消えてしまいます。それを防ぐ

テーマはメインサイトと同じくSimplicity2を使いたいので小テーマを解凍してフォルダ名を「simplicity2-test-child」に変更、

\site\wp-content\themes\simplicity2-test-child

にアップロードした。

style.cssの中身を以下のように変えた。テーマ名の名前にtestを追加した。

/*!
Theme Name: Simplicity2 child test
Template: simplicity2
Version: 20161002
*/

テーマで有効化

サイトネットワーク管理のテーマでアップロードしたSimplicity2小テーマを有効化する。

https://localhost/wp-admin/network/themes.php

小テーマ変更

小サイトのテーマ有効化

最後に小サイトの外観 > テーマでSimplicity2 Child testを有効化すれば作業完了。

https://localhost/test/wp-admin/themes.php

小テーマ有効化

コメント

タイトルとURLをコピーしました