WordPress 3.4.xをマルチサイトにする方法

【この記事を読むのに必要な時間は約 9 分です。】

私の別のブログubuntu12.04LTS使い始めました!で、WordPressのプラグインではない「Jqueryプラグイン」を紹介している。
先日まで、通常の「html+css」で作成したhtmlファイルにホームページにリンクを貼っていた。そのため、デザインが統一されていなかった。
今回、統一したデザインにチャレンジしてみた。

紹介しているJqueryプラグイン「colorbox」、「lightbox」、「nyromodal」、「syntaxhighlighter」、「pagetop」は、どれも人気があるため、WordPress用のプラグインも用意されている。しかし、WordPress用のプラグインで紹介しようとすると微妙に機能に違いがあり、相当面倒だ。

ということで、あれこれ思案して次のように計画した。
1.マルチサイト化する。(サブディレクトリ型)
2.子サイトで「Jqueryプラグイン」紹介ページを作成する。
3.子サイトで「WordPressでJqueryプラグインを使う」を実行する。
4.子サイトで「投稿記事別(カテゴリー別)に特定のheader.phpを割り当て」を実行する。
ことにより作成しようと目論んだ。
今回は、実際にマルチサイト化した際の手順、注意事項について説明する。

サブドメイン型: childsite1.jump-up.info/
サブディレクトリ型:jump-up.info/childsite1/
色々制約があるらしいが、今回はサブディレクトリ型で特に問題なかった。

既存サイトをマルチサイト化する

色々調べたが、マルチサイト化による不具合をなくすためには、既存サイトを一旦削除して、新規にWordPressをインストールしてマルチサイト化した後に、既存サイトを親サイトとして、戻してやる方法をとるのが間違いなさそうだ。
実際この方法でうまくいった。

私が利用している「Core Server」は、WordPressのインポート/エクスポート機能がうまく使えたことがないので、「MySqlデータ」をインポート/エクスポートすることにした。
※既存サイトのマルチサイト化にあたり、「MySqlデータ」の取り扱いを詳しく説明しているサイトがなかったので、若干不安だった。

既存サイトのバックアップとWordPressの新規インストール

1.既存サイトのルート以下をFTPクライアントで丸ごとダウンロード、バックアップ。
2.WordPressのインポート/エクスポート機能が使えるかもしれないので、既存サイトをエクスポートして保存。
3.「MySqlデータ」をphpMyadminでエクスポートして保存。同時に、「MySqlデータ」のテーブルを削除。
4.WordPressを新規インストール。
5.WoerPressをマルチサイト化。
6.最後にエクスポートした「MySqlデータ」を全く改変などせずにそのままインポートして、既存サイトの「wp-content」フォルダをFTPクライアントでアップロードして終了。

WordPressのマルチサイト化

上記1.~4.までを実行する。
インストールが終了したら一度ログインしてWordPress管理画面を確認だけする。
ログアウトして

wp-config.phpへの追記

wp-config.phpにハイライトした部分を追記する。場所は「/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */」の上にするとよい。

define('WP_DEBUG', false);

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

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

ネットワークの設置

wp-config.php修正後、再度ログインする。
WordPress管理画面に「ツール→ネットワークの設置」が追加されているので、クリックする。
ここで、今回のマルチサイト全体の設定を行う。
今回はサブディレクトリ型を選択。
ネットワーク名はネットワーク全体の名前となる。後から変更できないので注意。
メールアドレスを記入したら「インストール」をクリック。

ネットワークの設置

ネットワークの作成

「インストール」をクリック後、画面にネットワークを作成するための手順1.~3.が表示される。

ネットワークの作成手順

手順1:blogs.dirディレクトリの作成
「wp-content」ディレクトリ直下に「blogs.dir」ディレクトリを作成する。
パーミッションは「757」にしておく。

blogs.dirの作成

手順2:wp-config.phpの編集
既に追記したハイライト部分をまず削除すること。

define('WP_DEBUG', false);

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

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

そのうえで、以下のハイライト部分(上記「ネットワークの作成、手順2.で示された部分」)を追記する。
※私のサイト用の設定なので、間違えずに自分のサイト用の設定を行う事。

define('WP_DEBUG', false);

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
$base = '/';
define('DOMAIN_CURRENT_SITE', 'jump-up.info');
define('RATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

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

手順3.「.htaccess」ファイルの作成
変更前の「.htaccess」ファイルのハイライトした部分(上記「ネットワークの作成、手順3.で示された部分」)を置き換える。
変更前の「.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
AddHandler application/x-httpd-phpcgi .php 

変更後の「.htaccess」ファイル

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [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).*) $1 [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
</IfModule>
# END WordPress
AddHandler application/x-httpd-phpcgi .php 

これで、再度WordPress管理画面にログインする。

子サイトの設定

子サイトを設定する。
画面上の「参加サイト→サイトネットワーク管理者→サイト」をクリックする。

子サイトの設定

「サイト→新規追加」をクリックする。

サイトの追加
サイトのアドレスとタイトルを決めて、メールアドレスを記入する。
サイトの追加-記載事項

これでサイトは追加されている。

追加されたサイト

WordPress管理画面を日本語にする

デフォルトでは言語が英語になっているので、日本語に変更する。
「サイトネットワーク管理者画面」の「設定」をクリックする。

ネットワーク管理画面

「言語の設定」を「英語」から「Japanese」に変更する。

日本語設定

以上でWordPressのマルチサイト化は完了。

WordPressをマルチサイト化した際の留意事項

パーマリンク設定のカスタム構造に「/blog/」がつくのを回避

マルチサイト化するとデフォルトで親サイトのパーマリンク設定のカスタム構造に「/blog/」がついてしまう。
これは、別の記事になるが、WordPress 3.4.xのマルチサイト化の際に親サイトのパーマリンク設定の「blog」を消す方法を参考にして回避することができる。
※「パーマリンク設定のカスタム構造」の項目にはそのまま残るがURLからは消える。

Ping通知の再有効化

マルチサイト化すると各サイトのWordPress管理画面の「投稿設定」から「情報更新通知」(Ping通知)が消えてしまう。
これは、別の記事になるが、WordPress 3.4.xのマルチサイト化の際に、消えてしまったPing通知を再度有効にするプラグイン「Activate Update Services」を参考にして再度有効にすることができる。

「テーマ」と「プラグイン」の有効化

「テーマ」はネットワーク管理画面で有効化しなければ、親サイトや子サイトで「有効化」できない。
「プラグイン」はネットワーク管理画面でインストールしなければ親サイトや子サイトでは「インストール」できないが、親サイトや子サイトでそれぞれ「有効化」、「カスタマイズ」できる。

同じ「テーマ」をサイト毎で違う「カスタマイズ」をしたい

「テーマ」はネットワーク管理画面からしか「カスタマイズ」できないので、親サイトと子サイトで同一のテーマを使用するとカスタマイズは親サイト、子サイトともに適用される。
親サイトと子サイトで同一テーマを使用してかつ違うカスタマイズにするには、同じテーマを複数インストールすることになる。
複数のテーマをインストールした場合に間違えないようにする方法は、別の記事になるが、WordPress 3.4.xのマルチサイト化の際に同一のテーマを複数利用する方法を参考にすると良い。

以上

Related Posts Plugin for WordPress, Blogger...

もし良ければお願いします。

  • このエントリーをはてなブックマークに追加

良かったらフォローお願いします。