WordPress MU ブログディレクトリの変更
ブログURLのタイプをサブディレクトリ型にして、ルート直下に WordPress MU ファイルを置かず、サブディレクトリに WordPress MU ファイルを置き、各ブログURLを WordPress MU と同レベルに置きたい場合、(ややこしい)
つまり
WordPress MU ディレクトリ:example.com/wpmu
ブログURL:example.com/blog1,example.com/blog2
にしたい場合、通常版WordPressのような設定だけでは解決できないのでメモ。
- ブログURL変更
- サーバに index.php と .htaccess を設置
- index.php 修正
- wp-config.php 修正
- 各種通知メールの修正
WordPress MU では WordPress の一般設定にある「WordPress のアドレス (URL)」「ブログのアドレス (URL)」が各ブログ側の設定では表示されない、、ので、
admin権限でログインし、サイト管理 > ブログ から該当ブログの「編集」をクリック、ブログ情報の「パス」のみを変更し保存。
(上述の例で言うと、パスを「/wpmu/blog1/」から「/blog1/」に変更)
通常版WordPressの公式ドキュメントと同様に、 WordPress MU ディレクトリにある index.php と .htaccess をルートディレクトリにコピー。
追記:どうやら index.php は要らないみたい
require('./wp-blog-header.php');
を該当ディレクトリに変更。
(上述の例で言うと、パスを「./wp-blog-header.php」から「.wpmu//wp-blog-header.php」に変更)
通常版WordPressなら、ここまでで設定完了なのだが、MUの場合は次がポイント!
38行目と40行目
$base = '/wpmu/';
define('DOMAIN_CURRENT_SITE', 'example.com' );
define('PATH_CURRENT_SITE', '/wpmu/' );
を
$base = '/';
define('DOMAIN_CURRENT_SITE', 'example.com' );
define('PATH_CURRENT_SITE', '/' );
に変更。
これで完了!
この設定で今後追加するブログのデフォルトもルート直下になる。
追記:ブログディレクトリを変更すると、Wordpressからの各種通知メール内のURLが違ったパスになるので変更
ユーザー追加時の招待メールの wp-activate.php へのURLが違ったパスになるので
wpmu-functions.phpの1146行目
http://{$current_site->domain}{$current_site->path}wp-activate.php
を
http://{$current_site->domain}{$current_site->path}該当ディレクトリ/wp-activate.php
に変更
同じくパスワード再発行の wp-login.php へのURLが違ったパスになるので
wp-login.phpの148行目
$message .= 'http://' . trailingslashit( $current_site->domain . $current_site->path ) . "wp-login.php?action=rp&key=$key\r\n";
を
$message .= 'http://' . trailingslashit( $current_site->domain . $current_site->path ) . "該当ディレクトリ/wp-login.php?action=rp&key=$key\r\n";
に変更
