WordPressマルチサイトを元に戻す

スポンサーリンク

wordpressマルチサイト

wordpressにはマルチサイトという便利な機能があって、1つのwordpressで複数のサイトを運用することができます。

サーバにwordpressを複数インストールした場合、それぞれのwordpressにデータベースを設定する必要があります。

今では安いレンタルサーバでもデータベースは複数設置できますが、昔のレンタルサーバは使えるデータベースの数に制限があったので、webサイト本体+ブログ複数というような事例ではマルチサイト機能をよく使ってました。

プラグインやテーマも共用できるので、管理もその分楽になります。

スポンサーリンク

WordPress マルチサイトのデメリット

しかし、wordpressのマルチサイト機能は便利な反面、いろいろなデメリットもあります。

  • 設定が少し面倒
  • マルチサイトに対応していないプラグインがある
  • wordpressがトラブッた時は全てのサイトに影響が出る

wordpressのマルチサイト化は、wp-config.phpや.htaccessを書き換える必要があります。別に難しくはありませんが、初心者には少し敷居の高い作業ですよね。
プラグインですが、一例を挙げるとサイトマップ設置で定番の「Google XML Sitemaps」がマルチサイト非対応でした。(今はベータ版がマルチサイト対応のようです)
そして、wordpressがマルチサイト化されていると、トラブルの時はすべてのサイトに影響が出てしまいます。バックアップから復旧させる場合も、個別のサイトだけというわけにはいかず、管理がとても面倒です。
というわけで、最近はマルチサイト機能を使うこともなくなり、マルチサイト化されている場合は元に戻して、複数のwordpressを使うようにしています。

wordpress マルチサイトのトラブル

さて、先日マルチサイト化されているブログでこんなトラブルが発生しました。
個別サイトのダッシュボード左メニュー「プラグイン」がおかしくなり、新規のプラグインインストールができなくなってしまいました。
カーソルを「プラグイン」に移動させても、右側にポップアップメニューが表示されません。アドレスバーから「新規追加」のアドレスを直接入力してもダメです。
「サイトネットワーク管理者」であれば、メニューがきちんと表示されて、新規プラグインもインストールできますが、なぜか個別サイトだとうまくいきません。
同一のwordpressを使用しているので、他のサイトでも同じような症状が出ます。

今までになかったマルチサイトのトラブルなので、調べて修正するのも面倒だし、多分マルチサイトを元に戻せばこのトラブルは解消されるはずです。しかも、他のサイトはほとんど運用されていないので、一番手間のかかるサイトの復元作業は必要ありません。

というわけで、マルチサイト化されているwordpressを元に戻すことにしました。

今回はこちらのブログを参考に復元作業を行いました。ITTIさま、ありがとうございます。

http://www.itti-c.com/web-staff/wp-multi-blog-off.php

WordPressのマルチブログを解除する方法

スポンサーリンク

wordpress マルチサイトの解除

まず最初に、マルチサイトを解除したときに、残るサイトをきちんと確認してから作業してください。マルチサイトを解除すると、基本的にマルチサイトにしてから追加したサイトは消滅します。全て個別に復元をする場合は別ですが、最初のサイトを残してそのまま運用を続ける場合は要確認です。

では、さっそくマルチサイトの解除作業に入ります。まずはデータベースのバックアップを取って、使用中のプラグインはすべて停止してください。続いて、wordpressをマルチサイト化した際に書き換えたwp-config.phpと.htaccessを元に戻します。

wp-config.phpのコード編集

エディタでwp-config.phpを開いて、下記のコードを消去します。

define( 'WP_ALLOW_MULTISITE', true );
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', '自分のドメイン');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

wordpressをマルチサイト化した場合、最初にマルチサイト機能を有効化したときと、その後でネットワークを作成したときの2回、wp-config.phpを書き換えているはずです。上がマルチサイト機能を有効化したとき、下がネットワークを作成したときに追記したコードです。どちらもそのまま消去してください。

.htaccessのコード編集

エディタで.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

上記のコードを、このように復元します。

# 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

復元箇所は、<IfModule mod_rewrite.c></IfModule>の間です。なお、上記のwp-config.phpと.htaccessは、ルートフォルダにwordpressを設置した場合の一般的な例です。ディレクトリの構成によって記載内容は異なるので、自分のサイトに合わせて変更してください。
今回の事例では、wordpressをマルチサイト化したときにwp-config.phpと.htaccessのバックアップを取ってあったので、それを上書きしました。

wordpress マルチサイトの解除完了

とりあえず、これでwordpressマルチサイトは解除されました。あとはプラグインを再有効化すればOKです。他にデータベースの掃除やファイルの整理といった作業も残っていますが、気にならないならそのまま使っても大丈夫です。
データベースの掃除やファイルの整理をする場合は、先ほど紹介したこちらのサイトに作業内容が記載されているので、参考にしてください。

昔はデータベースの設置に制限があったので、wordpressをマルチサイト化するメリットは大きかったのですが、トラブル時の復旧の手間や管理を考えると、今やマルチサイトはデメリットの方が大きいと思います。

1つのサーバで複数サイトを運営する場合は、wordpressの複数インストールをお薦めします。

スポンサーリンク
PC用
PC用

フォローする