WordPressのマルチサイト化の方法とトラブル対応

こんにちは。おもてうらです。

今回は1つのドメイン(URL)下でWordpressを複数運営するための「マルチサイト化」について、その実装方法と作業時に起きたトラブル対応の説明をしていきます。

Wordpressのマルチサイト化の方法

  1. Wordpressのインストール
  2. 設定ファイルの編集
  3. ネットワークの設定
  4. ネットワークの有効化作業
  5. サイトの追加

Wordpressのインストール

サーバーにWrodpressをインストールし、管理画面にアクセスできる状態にします。

②設定ファイルの編集

サーバーから「wp-config,phpFTPソフトなどでダウンロードし、以下の記述を追加してサーバーに上書きアップロードします。

define('WP_ALLOW_MULTISITE', true);

※「/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */」の前であれば、どこに記述してもOKです。

③ネットワークの設定

Wordpress管理画面で「ツール」→「ネットワークの設定」(②の手順後に新しく追加)を選択します。

サブドメイン型 or サブディレクトリ型を選択し、サイトネットワーク名(後で変更可能)を決めたら、「インストール」をクリックします。

サイトネットワーク内のサイトアドレス

注意点

この画面でサブドメイン型、サブディレクトリ型が選択できない場合は、以下を参考にしてください。

④ネットワークの有効化作業

「サイトネットワークで使用中」画面に表示された作業内容を実施します。 

サイトネットワークの有効化

「wp-config.php」の編集

「wp-config,phpに指定されたコードを追加してサーバーにアップロードします。

※「/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */」の前であれば、どこに記述してもOKです。

.htaccess」の編集

.htaccessに指定されたコードを追加してサーバーにアップロードします。

.htaccessには既に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

作業完了後にWordpress管理画面から一度ログアウトし、再度ログインします。

⑤サイトの追加

Wordpress管理画面の上部に「参加サイト」というメニューが追加されるので、そこから「サイトネットワーク管理者」→「サイト」と進み「新規作成」をクリックします。

Wordpressマルチサイトの参加サイト

サイトの新規作成画面で、サイトアドレス、サイトタイトル、管理者メールアドレスを入力し、「サイトを追加」をクリックすると新しくサイトが追加されます。

新規サイトの追加

以上でWordpressのマルチサイト化は完了です。

各サイトのアドレスを変更する場合は、「サイトネットワーク管理者」の「サイト」の項目から編集可能です。

注意点

マルチサイト化すると、親サイトの記事URLに「/blog」が勝手に挿入されてURLが変わってしまいます。この対処法としては「親サイトのURLから「/blog」を削除する」を参照してください。

マルチサイト化のトラブル対応

サブドメイン型が選択できない

ネットワークの設定時に、以下の様なメッセージが出て、サブドメイン型が選択できない場合があります。

サブディレクトリへのインストール
このWordpressディレクトリにインストールされているため、サイトネットワーク内のサイトはサブディレクトリを使う必要があります。

最初にWordpressをサーバーへインストールする際に、ドメイン直下ではなく下層ディレクトリ(例:http://○○○.com/×××/)へインストールした場合、サブドメイン型は選択できません。

サブドメイン型でマルチサイト化する場合は、必ずドメイン直下にWordpressをインストールしましょう。

サブディレクトリ型が選択できない

ネットワークの設定時に、以下の様なメッセージが出て、サブディレクトリ型が選択できない場合があります。

サブドメインのインストール
新規インストールではないため、Wordpressネットワーク内のサイトはサブドメインを使う必要があります。メインサイトをサブディレクトリにインストールしている場合、修正したパーマリンク構造を使う必要があり、現存リンクを壊してしまう可能性があります。

既にサイト運営をしており、マルチサイト化の際に1か月以上前の投稿データがあると、サブディレクトリ型は選択できません。

これを解消するには1か月以上前の投稿データを無くせばOKです。

  1. 投稿記事(下書き含む)の日付を全て1か月以内に変更する
  2. phpMyAdminにログインし「wp_posts」にある不要な投稿データを削除する

1の手順だけではダメな場合、データベースに古い投稿データが残っているので、phpMyAdminなどからデータベース上の不要な投稿データを削除しましょう。

親サイトのURLから「/blog」を削除する

マルチサイト化すると、親サイトの記事URLに「/blog」が挿入されてURLが変わってしまいます。この「/blog」を削除するには、以下の手順を実施します。

  1. 「参加サイト」→「サイトネットワーク管理者」→「サイト」と選択し、サイト一覧の一番上にある親サイトのURLをクリックします。
  2. 「設定」タブを選択し、Permalink Structure」という項目を探して、そこの記述を空欄にして保存します。
  3. 親サイトの管理画面に移動して、「設定」→「パーマリンクの設定」と進み、任意のパーマリンク方式を設定すればOKです。

ちなみに「/blog」が挿入されるのは投稿ページだけで、固定ページには挿入されません。