WordPressのマルチサイトを解除する方法
WordPressのマルチブログを解除して、シングルブログに戻す方法とマルチブログの運営で感じたメリット・デメリット。
WordPressのマルチサイト(ブログ)を解除して、シングルサイトに戻す方法です。
マルチブログの解除は簡単ですが、その後の修正が大変です。
マルチサイトを解除するとどうなるのか?
記事や画像が消失することはありません。
複数の記事や、カテゴリー、画像が全て1つのブログに集約されます。
ひとつのブログに集約されるため、記事やカテゴリーのURLは変わってしまいます。画像のURLも変わってしまいます。
そのため、記事と記事のリンク、画像などのリンク切れが出てきます。
このリンク切れの修正が大変です。
カテゴリーも消えること無く存在します。
同じカテゴリー名の場合も、上書きされずに存在します。スラッグだけが異なります。
ひとつのブログに同じ名称のカテゴリーが複数存在することになるので、記事をどちらかのカテゴリーに設定する必要があります。
マルチブログを解除する方法
マルチサイトにしたことの逆の作業を行います。「wp-config.php」と「.htacceess」ファイルを修正します。
データベース、ファイルのバックアップ
作業前にはサイトをまるごとバックアップしてからマルチブログを解除してください。データベースもバックアップしておきます。
プラグインをオフにする
作業前に有効化しているプラグインは、全てオフにします。
wp-config.phpを編集します
マルチブログで変更した「wp-config.php」の変更箇所を元に戻します。
変更箇所
define('WP_DEBUG', false);
define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'itti.jp');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
下記に修正します。
変更後
define('WP_DEBUG', false);
.htaccessの変更
マルチサイト化で指示された「.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]
下記に修正します。
修正後
# 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>
修正した「wp-config.php」「.htaccess」ファイルをサーバにアップするとマルチサイトが解除されます。
WordPressにログインする
ログインしたら「設定」の「パーマリンク」を変更します。
設定したパーマリンクに合わせて「.htaccess」ファイルも修正します。
以上でマルチサイトの解除は一旦完了です。
シングルサイトにした後の修正作業
これからが大変な作業になります。
カテゴリーの修正
マルチサイトのカテゴリーはそのまま残りますが、URLが変わっています。
同一名称のカテゴリーは上書きされずに残るので、どちらかひとつのカテゴリーに統一するか、カテゴリー名を変更する必要があります。
画像ファイルの修正
画像は「wp-content」内の「uploads」に入ります。
ただし、メディアライブラリに認識されない画像も出てきます。
プラグイン「Media from FTP」を利用して、メディアライブラリに認識するようにします。画像枚数が多いと有料版にしても結構な確率でエラーとなります。
画像エラーになっている記事も多く存在することになるので、チェックと修正が必要となります。
画像が入っているディレクトリ「/uploads/sites/」はまるごと削除しても問題ありません。
記事の修正
記事のURLも変わってしまいます。そのため記事と記事でリンクしている場合、リンク切れになっています。
データベースの一括置換をおこなう
例えば記事のURLが下記のように変更されリンク切れとなっている場合
マルチサイト「blog-b/category/post-001/」
シングルサイト後「category/post-001/」
データベースの一括置換をおこなうと良いでしょう。
置換ツールは下記の2つが定番でお薦めです。
Database Search and Replace Script in PHP
.htaccessでリダイレクト
URLが変わってしまった記事やカテゴリーは、htaccessで新しいURLにリダイレクトさせておきましょう。
プラグイン設定、データベースのクリーンアップなどをおこなう
オフにしたプラグインをオンにして、データベースのクリーンアップをおこなっていきます。
プラグインの再設定
オフにしていたプラグインを有効化して設定などを変更していきます。
マルチブログ用のプラグインがあればシングルブログ用に差し替えます。
データベースのクリーンアップ
マルチブログで作られた不要なテーブルを削除していきます。
追加されたブログのテーブルには「wp_2」「wp_3」「wp_4」とプリフィックスが記載されていくので、該当するテーブルをザックリと削除します。
プラグインでテーブルを削除する場合は「Advanced Database Cleaner」がお薦めです。
以上でマルチサイトの解除は完了です。
なぜ、マルチブログを解除したのか?
思ったより「運営管理の手間が軽減されなかった」の一言です。
マルチブログでデメリットに感じたところ
マルチブログ化して、あまりメリットを感じなかったところです。
- マルチブログに対応していないプラグインも幾つかあり、代替プラグインを探す手間がかかる。
- 一括で設定したい箇所も個別に設定するところもあり手間がかかる。
- サーバへの移行が面倒。
- マルチサイトのひとつだけを別のサーバに移転させる時はかなり面倒。
- データベースのテーブルが複雑になる。
マルチブログのメリットに感じたところ
マルチブログ化してよかった点です。
- WordPress、プラグインのバージョンアップが一括でできる。
- 一つのデータベースで運用できる。
- ユーザーをサイト毎に管理、切り分けることができる。
MovableTypeのマルチサイトをイメージして構築すると、かなり違いますね。
無理にマルチサイトにするより、カスタム投稿タイプで対応できるかを検討した方が良いでしょう。