マルチサイト化の壁
こちらの記事に書いた通り、WordPressをマルチサイト化するには壁があります。
下記の場合は、マルチサイト化ができないと言われています。
WordPressインストールから時間が経っている
運用してから時間が経っているブログや、既に記事を投稿している場合は、マルチサイト化ができません。
WordPressをメイン直下に置かなかった
ディレクトリを作ってその中にWordPressをインストールした場合、マルチサイト化ができません。
このような困った状況でもマルチサイト化することができたので、やり方を書いておきます。
ただし、以下のことは十分に注意してください。
- バージョンが変わったらできなくなるかもしれない。
- バックアップは必ず取る。
- 自己責任でお願いします。
マルチサイトのやり方
ここからは、条件を満たさない場合のマルチサイト化の裏技です。
公式ではできないはずのことを無理やり捻じ曲げてやるので、不都合が生じる場合があります。
必ずバックアップを取って、自己責任で行ってください。
こちらのサイトを参考にしています。
参考A:すでに運用中のサイトをサブディレクトリ型でマルチサイトにしたい
参考B:既存の WordPress シングルサイトをサブディレクトリ型マルチサイトに移行する最も簡単な方法
前準備
FTPの準備
FTPを使用するため、「FFFTP」というソフトをインストールします。
窓の杜 > FFFTP
他のソフトでも大丈夫ですが、仕事で使うときにこれを使っている人が多かったので、プロお墨付きってことで(笑)
このソフトを使ってバックアップを取ります。
プラグインの停止
WordPressのプラグインを停止しておかないと、途中で止まってできなくなってしまいます。
WordPressメニューのプラグインから「無効化」を選んでください。
wp-config.phpを書き換える
FFFTPを使ってwp-config.phpを書き換えます。
このファイルはWordPressをインストールしたディレクトリに入っています。
ファイルに以下の文章を追加します。
define('WP_ALLOW_MULTISITE', true);
ネットワークの設置
一度確認してみましょう。
場所はWordPressの管理画面の左側のメニューから、ツールの一番下に「ネットワークの設置」が出てきます。
すると「WordPressサイトのネットワークの作成」が出てきます。
マルチサイト化はできないという、エラーっぽいメッセージが出てきますね。
念のため、この時点で自分のブログが表示できるか確認作業をしておきましょう。
作業の間にこまめに確認することによって、「どの時点で失敗したか」が分かりやすくなるのでおすすめです。
network.phpを書き換える
FFFTPを使ってnetwork.phpを書き換えます。
このファイルは、WordPressをインストールしたディレクトリ⇒wp-admin⇒includesに入っています。
function allow_subdirectory_install() {
の直後に
return true;
と追加します。
ネットワークの設置
先ほどできなかったページをもう一度表示させてみましょう。
場所はWordPressの管理画面の左側のメニューから、ツールの一番下「ネットワークの設置」です。
今度はマルチサイト用の入力欄が出てきますね。
マルチディレクトリを選んで、インストールしてください。
このあとで出てきた画面がとても重要です!!
消さないでよく読んでください。
wp-config.phpを書き換える
指示通りに、ファイルを書き換えましょう。
書いてある通りにコピペすればいいです。
このファイルは、ドメイン直下ではなくWordPressをインストールしたディレクトリ内にあります。
私の環境だと、日本語表記の
/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */
ではなく、英語表記で
/* That's all, stop editing! Happy publishing. */
でした。
.htaccessを書き換える
こちらも指示通りに、ファイルを書き換えましょう。
書いてある指示に従ってコピペしてください。
このファイルは、ドメイン直下にあります。
再ログイン
ログインしなおしたら、マルチサイトができるようになっています。
2つ目のブログを作る
この手順は省略しますが、2つ目のブログを作ります。
URLの確認
さて、新しく作ったサイトはマルチディレクトリにしたので、「https://元のドメイン名/ディレクトリ名」になって作られています。
これは想定通りですね。
一応表示して確認しておいてください。
新しい方は良いのですが、最初からあった「https://元のドメイン名」の方のURLが変わっちゃっています。
前までなかった「/blog」が勝手に付いちゃっています。
これは困りますね……。
「/blog」を消す
というわけで、URLから「/blog」を消して元のURLに戻す作業が必要になります。
こちらは、下記のページで説明してくれている人がいるので、参考にしてください。
参考C:【WP】マルチサイトで親サイトのパーマリンク「/blog」を消す
手順通りやれば、設定の画面の「Permalink Structure」から簡単に直せます。
プラグインを有効化
最初に停止していたプラグインを有効化して終了です。
おまけ
ちなみにですが、サブディレクトリではなくサブドメインとしてマルチサイト化したい場合は、
function allow_subdirectory_install() {
の直後に
return true;
としていたところを
function allow_subdomain_install() {
の直後に
return true;
にしてください。