WordPressのマルチブログ化

この記事はだいぶ前に書かれたものなので情報が古いかもしれません

「来栖川研究所から配属になりました、HMX-12、マルチと申します! 今日から私がブログを更新します! よろしくお願いします!!」





って、それじゃあマルチブログじゃなくてマルチブログだよね。

あ、あと上の絵、一応マルチだから。こんなんだけど一応マルチだから。



Wordpressはバージョン3から……かな? 一つのWordpressで複数のブログが管理できるようになったんですよ。

まあ、このブログは管理しているのも(下手したら閲覧しているのも)僕しかいないから、マルチ化する必要なんてないんですが、やり方を知っておいて損はないはずなので、今日はそのマルチブログ化の手順をお話したいと思います。

とりあえず、複数のブログを管理できるようになっているとはいっても、デフォルトの設定のままでは複数のブログは扱えません。

といっても、設定はそんなに難しくはないみたいなので、ちょいちょいっとやってみましょう。


まずはネットワークのインストール

最初にWordpressをインストールしたとき、インストールしたディレクトリの直下に「wp-config.php」というファイルがあると思います。データベースの接続設定とかがごちゃごちゃ書いてあるファイルです。

ない場合はまだWordpressのインストールができてない状態だと思うので、まずはインストールから始めましょう。なーに、別に難しいことじゃないです。ガイダンスに従って必要な項目を入力してけばすぐっすよ。

で、そのファイルの中を見ると、下の方の行にこんなような内容があると思うんです。

/**
 * 開発者へ: WordPress デバッグモード
 *
 * この値を true にすると、開発中に注意 (notice) を表示します。
 * テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用することを強く推奨します。
 */
define('WP_DEBUG', false);

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

この「編集が必要なのは~」っていう文より上に、以下の一文を追加します。

こんな感じに書き足せば良いですかね。

/**
 * 開発者へ: WordPress デバッグモード
 *
 * この値を true にすると、開発中に注意 (notice) を表示します。
 * テーマおよびプラグインの開発者には、その開発環境においてこの WP_DEBUG を使用することを強く推奨します。
 */
define('WP_DEBUG', false);

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

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

そしたら管理画面に入ってみましょう。左側のメニューの中にある「ツール」の中に「ネットワーク」っていう項目が増えているはずです。

そのネットワークをクリックすると「ネットワークの作成」みたいなページに遷移するので、そのページにある「インストール」ボタンをクリックします。

インストールが完了すると、ネットワークの設定画面に遷移するので、そこに書かれていることを順番にやれば複数ブログを管理できるようになります。


ネットワークの設定

ネットワークの設定には以下の3つの手順が必要なようです。少なくともネットワークの設定ページにはそう書いてあります。

1:blogs.dirディレクトリの作成
2:wp-config.phpにもうちょいいろいろ書き足す
3:.htaccessに必要な設定を書き込む


blogs.dirディレクトリの作成

Wordpressのディレクトリ構成を見ると「wp-content」ってディレクトリがあるんですが、そのwp-contentというディレクトリの直下に「blogs.dir」というディレクトリを作成する必要があるらしいです。どうやらブログごとにアップロードするファイルを分けて管理するために必要なディレクトリみたいですね。


wp-config.phpの編集

さっきマルチブログを有効化するための一文を加えましたが、その下にでも書けば良いと思います。

何を書けば良いかは、ここであえて書かなくてもネットワークの設定ページにこれを追加してくださいってのが親切丁寧に書いてあるんですが、だいたいこんな感じのことが書いてあります。

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

人によって$baseの値とかが違ったりすると思いますが、とりあえずそのままコピペしとけば間違いないと思います。

wp-config.phpの中身はこんな風になるかしら。

/**
 * マルチサイトの有効化
 */
define('WP_ALLOW_MULTISITE', true);
define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/wp/';
define( 'DOMAIN_CURRENT_SITE', 'localhost' );
define( 'PATH_CURRENT_SITE', '/visit/app/webroot/wp/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );



.htaccessの編集

これもネットワークの設定ページに書いてある内容をそのままコピペすれば良いようです。

RewriteEngine On
RewriteBase /wp/
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]

まあだいたいこんな感じのことが書いてあると思います。この内容を書いた.htaccessをWordpressをインストールしたディレクトリの直下に置けばOKです。



設定自体は以上です。あとは一度ログインし直せば、管理者でログインした場合は右上に「サイトネットワーク管理」というリンクがあるので、そこでブログを追加したり、ブログごとのユーザーを追加したり、いろいろと設定できるようになります。

ただまあ、個人的な感想なんですけど、マルチ化する設定自体はそんなに難しくないんですけど、その後実際にブログを管理するところに来ると、いろいろと勝手が分からなくてちょい面倒な気がします。個人的にどの辺がめんどかったかを書くと結構長くなりそうだから今日のところは書きやせんが、機会があればいずれまた。

あれをもしマルチがいじった場合、きっとブログ単位でのユーザーの作成とかが上手くできなくてテンパっちゃうね。セリオじゃないと厳しい。

まだコメントはいただけてないみたい……
もしかしたら何か関連しているかも?