WEB

【WordPress】運用中のブログをマルチサイトに変更

WordPressでブログのみ構築済みのサイトで、他のコンテンツもWordpress化する必要があり、運用途中でマルチサイト化する変更をしたので作業メモです。

前提

構築済みブログ
https://www.example.com/blog/
WordPressインストール先
https://www.example.com/blog/wp-admin/

ブログ用のディレクトリにインストールしてあるため、このままマルチサイト化するだけだと、

  • https://www.example.com/blog/news/
  • https://www.example.com/blog/about/

のように、blogディレクトリの下にしかマルチ展開できません。
そこで、マルチサイト化したあとに、Wordpressインストール階層をルートに変更します。

blogはblogで今の運用通りで管理画面を維持しつつ、他のコンテンツもWordpress化したい。以下のようなディレクトリを目指します。

  • https://www.example.com/blog/
  • https://www.example.com/news/
  • https://www.example.com/about/

以下が手順です。

事前準備

  • DBとファイルのバックアップを取ります!
  • phpMyAdminなどのDBツールにログインしておきます。(DBのレコードを更新する為)

手順

01. wp-config.phpにマルチサイトの設定を追加

define('WP_ALLOW_MULTISITE', true);

02. プラグインの停止

プラグインをすべて停止します。

03. ダッシュボードのメニュー

WordPress管理画面で「ツール」→「ネットワークの設定」(新しく追加されています)を選択します。
ネットワーク作成画面で「サブディレクトリ」を選択し、「インストール」をクリックします。

04. wp-config.phpと.htaccessの編集

インストール後に表示される記述をそれぞれのファイルに追記して、管理画面をログアウト、ログインします。

05. 既存ブログの確認

一旦、この状態でサイトが正しく(リンク切れや404などが発生しないか)表示されるか確認します。(プラグインはまだ有効にしない)
WordPress管理画面の「サイトネットワーク管理者」から、「サイト」を見てみると、既存のブログが、マルチサイトの1番目として登録されているはずです。
この状態ですとサイトアドレス (URL)がまだ/blog/となっている状態です。

06. /blog/以下にあったwp関連のファイルをすべてルートに移動する

wp-admin, wp-include, wp-content と、index.php, wp-xxxx.phpのファイル, readmeやライセンスなどすべてをルートに移動します。
FTPソフトなどでグリっとドラッグドロップ移動できるやつなら楽ですね。
※この時点でWordpressにアクセスできなくなります。

07. ルートディレクトリの.htaccessの編集

04.で/blog/.htaccessに追記した記述を、ルートの.htaccessに移動します。
その際、「RewriteBase /blog/」→ 「RewriteBase /」に変更します。

08. ルートディレクトリのwp-config.phpの編集

04.で/blog/wp-config.phpに追記した記述の以下の部分を変更します。
define('PATH_CURRENT_SITE', '/blog/');

define('PATH_CURRENT_SITE', '/');

09. データベースの編集

phpMyAdminなどから下記データベーステーブルの値を変更します。
(1)wp_options
「option_name」の「siteurl」を「https://www.example.com/blog」→「https://www.example.com」に
(2)wp_blogs
「domain」が「https://www.example.com/」のレコードの「path」を 「/blog/」→「/」に
(3)wp_site
「domain」が「www.example.com」の「path」が「/blog/」になっていることを確認
※ここが「/」で、次の10.のパーマリンク設定に「/blog/」がついてる形でもいいかも。

10. 管理画面から設定を変更

(1)WordPress管理画面の「サイトネットワーク管理」から、「サイト」一覧を表示し、「https://www.example.com」を「編集」。
(2)「設定」タブから、「Permalink Structure」を
「/blog/archives/%post_id%」(←各々設定によります)→ 「/archives/%post_id%」に変更します。
※こうしないと、https://www.example.com/blog/blog/archives/233 のように二重のディレクトリになってしまいます。

11. プラグインを有効化する。

既存ブログのサイト別ダッシュボードに入り、必要なプラグインを有効にしてください。

12. 完了。

サイトネットワーク管理から好きにサイトを追加してください。

このやり方を保証しているわけではないので、必ずバックアップを取ってから作業してくださいね!

reiko suzuki
OLD SKOOLシステムエンジニア。ねこを撫でながら働いています。