WordPressのシングルサイトをマルチサイトへ移行する手順

WordPressのマルチサイト機能は複数サイトを一括管理でき、インストールやアップデートが1回ですむため非常に便利です。最初にシングルサイトで構築していたサイトを、マルチサイトに移行する手順を解説します。

【記事執筆時の環境】
WordPress 3.8.2

前提としては、マルチサイトでWordPressをインストールして、既存サイトを子サイトとして移行するものとします。

  1. 通常通りWordPressをインストールします。
  2. マルチサイト化を行います。詳細は以下の記事を参照してください。
    「WordPressマルチサイト機能でWebサイトを構成する」
  3. 親サイトおよび移行する既存サイトを、ネットワーク管理画面で設定します。
  4. パーマリンク設定などWordPressの基本設定をします。
  5. 必要なプラグインをインストールします。
  6. 既存サイトの画像をアップロードするディレクトリを作成します。
    例えば、id=2の子サイトのディレクトリは次のようになります。
    「ドメイン名/wp-content/uploads/sites/2/」
    ※親サイトには、/sites/2/のフォルダはなく、/uploads/の下に年のフォルダが続きます。
  7. 既存サイトのデータベースを修正するため、SQLファイルをエクスポートします。
  8. エクスポートしたデータベースファイルの中に記述されているURLを、新環境に合わせて修正します。
    例)http://example.com ⇒ http://example.jp/site2
  9. データベースのテーブル名を、新環境に合わせて置換し修正します。

    最低限下記5つのテーブルについて修正する必要があります。
     wp_posts ⇒ wp_2_posts
     wp_postmeta ⇒ wp_2_postmeta
     wp_terms ⇒ wp_2_terms
     wp_term_relationships ⇒ wp_2_term_relationships
     wp_term_taxonomy ⇒ wp_2_term_taxonomy

    下記テーブルはインポートする必要はありません。
     wp_commentmeta ※コメントある場合は修正しインポートする
     wp_comments ※コメントある場合は修正しインポートする
     wp_links
     wp_options
     wp_usermeta
     wp_users

    【注意点】
    ・接頭辞'wp'を変えている場合は、その名前にしてください。
    ・プラグインで作成したテーブルが存在する場合は、それらも修正します。
    ・マルチサイトでは、管理用として次のテーブルも存在します。
     wp_blogs
     wp_blog_versions
     wp_registration_log
     wp_signups
     wp_site
     wp_sitemeta

  10. wp_2_postsテーブルについて、アップロードディレクトリのパスを記述している部分を、先ほど作成したディレクトリパスに置換します。
  11. 修正したテーブルのINSERT部だけを残し、データベールファイルから他は削除します。
  12. phpMyAdminで、修正したデータベースファイルをインポートします。
  13. 既存サイトに適用していたテーマを、themasディレクトリにコピーします。
  14. 既存サイトの/wp-content/uploads/の下を、/wp-content/uploads/sites/2/の下にそっくりコピーします。
  15. ページを表示させて確認します。

スポンサーリンク

ページの先頭へ