マルチサイトをシングルサイトに戻す手順のご紹介です。
注意
- 内容を一つのサイトに統合する方法ではありません。
- マルチサイトをシングルサイトに単純に戻すだけです。
手順
- データベースのバックアップ
- プラグインを停止
- wp-config.phpを修正
- .htaccessを変更
- プラグインを有効にする
- マルチサイトで作られた不要なデータベースを削除
- アップロードファイルの削除
1. データベースのバックアップ
phpMyAdminなどからWordPressのデータベースをバックアップします。
2. プラグインを停止
プラグインの稼働、未稼働が混在する場合はあらかじめスクリーンショットを撮ってからプラグインを停止します。
3. wp-config.phpを修正
マルチサイト化する際に追加した以下のコードを削除します。
define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true); define('SUBDOMAIN_INSTALL', true); define('DOMAIN_CURRENT_SITE', 'example.com'); define('PATH_CURRENT_SITE', '/example/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1);
4. .htaccessを変更
マルチサイト化した時の状態が下記のとおりです。
# BEGIN WordPress 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] # 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
5. プラグインを有効にする
WordPressにログインし、2で停止したプラグインを有効にします。
マルチサイトの解除はここまでで終了ですが、最後に不要なデータベースを削除しましょう。
6. マルチサイトで作られた不要なデータベースを削除
マルチサイト化した際に作られた不要なテーブルを削除します。
先頭に「wp_2」など数字がついたテーブル全て対象です。
プレフィックスを変えている場合は「●●_2」
- wp_blogs
- wp_blog_versions
- wp_registration_log
- wp_signups
- wp_site
- wp_sitemeta
7. アップロードファイルの削除
/root-path/wp-content/uploads/sites/
以下のフォルダはマルチサイトで使用されていたアップロードフォルダです。不要であればサーバ容量を減らすために削除しましょう。
