[WordPress]シングルサイトをマルチサイトの小サイトに引越し

  • スポンサーリンク

  • スポンサーリンク

この記事は公開から11年、最終更新日からも6年経過しています。内容が古くなっている可能性があります。

2週間ほど前に、日記用BlogのURL変更を行ったばかりなのですが、現状、サイト構築に利用しているWordPressのシングルサイトとマルチサイトが混在していて、管理も面倒だったので、勉強がてら、シングルサイトをマルチサイトの小サイトへの引越し作業を行なってみました。

本ブログはその備忘録。

サイトの構成を簡単な表にしています。
サイト構造

【前提条件】
・http://blog.nakamurayuji.com/
 で公開していた内容を
 http://diary.nakamurayuji.com/
 で公開する。
・移行後のサイトはWordPressのマルチサイト設定とサブドメイン設定が完了しているものとします。
・URLは変わってしまいますが、旧サイトにアクセスした場合、新サイトにリダイレクトする事で、訪問者の方は以前と変更なくアクセス可能にします。
・簡単なSQL文の意味を理解した上で行いましょう。DROP TABLE、CREATE TABLE、INSERTなど

【環境】
(サーバー)ロリポップ、(ドメイン)ムームードメイン

【手順】
(1)テーマ内のファイルをコピーしておきます。
/www/blog/wp-content/themes/simplo → /wp-content/themes/simplo

(2)データベースバックアップ
phpMyAdminを利用し、引越し前の該当するテーブルを全てエクスポート
※引越し前のテーブル→”wp1_”で始まるテーブル全て(インポートが不要なテーブルもありますがとりあえず)
※phpMyAdminのエクスポート時の設定例

(3)データベースの各テーブルを新環境に合わせるため、上記エクスポートしたファイルを新環境に合わせて編集
ここが一番大変でした。というか、文字列置換は使用したもののほとんど手動。
※各テーブルの概要はここにありました→データベース構造
※マルチサイトの親サイト、小サイトのテーブルの内容と、移行するシングルサイトのテーブルの内容を比べながら、移行すべきものと新たに設定すべきものを見極めながら行います。
※個人的なポイント
・小サイトのテーブルに移行する場合はテーブル名を wp1_ を wp4_5_ に変換
・親サイトのテーブルに移行する場合はテーブル名を wp1_ を wp4_ に変換
・マルチサイトの設定で定義できるものはsql文から削除
・テーブル定義のみで中味が空なものはsql文から削除
・コメント、投稿関連は環境に合わせてテーブル名の書き直しが必要
  comments、postmeta、posts、terms、term_relationships、term_taxonomy
・プラグインCounterizeⅡ用のテーブルはそのままにしておけばカウンターの値が移行できるっぽい?
  Counterize、Counterize_Keywords、Counterize_Pages、Counterize_Referers、Counterize_UserAgents
・URLの変更(リダイレクトするので可能な限りで良い気もする。)
  https://www.nakamurayuji.com/blog/ もしくは http://blog.nakamurayuji.com/
  → http://diary.nakamurayuji.com/
・画像のURLは忘れずに変更
  https://www.nakamurayuji.com/blog/wp-content/uploads/
  → http://diary.nakamurayuji.com/files/
・shashinプラグイン関係のテーブルは親サイトのテーブルに設定
  shashin_album、shashin_photo

(4)編集したsqlファイルをインポート(該当するデータベースを選択した状態で)
 なんとなく表示されます。

(5)画像等のコピー
 シングルサイトの画像(/uploadsディレクトリ)を、小サイトIDのファイル格納場所にコピーする
  /www/blog/wp-content/uploads/ → /wp-content/blogs.dir/5/files/

(6)データベースインポートだけでは反映されなかったテーマ、プラグイン等の設定を行う

(7)色々な表示方法で正しく表示されているかどうか、画像のリンクが切れていないかなどを確認します。
 1投稿、ページ単位表示、カテゴリー表示、年月表示、タグ表示、などなど

(8)旧URLでアクセスした場合に、新URLにリダイレクトされる設定を.htaccessファイルに記載し、旧URLのデータが格納されている位置に保存。
 .htaccessファイルの置き場所
  /www/blog/.htaccess
 .htaccessに追加する内容
  RewriteEngine on
  Redirect permanent / http://diary.nakamurayuji.com/

(9)(7)で試した表示方法で旧URLにアクセスした際に、どの表示方法においても新URLで正しく表示されることを確認。

(10)しばらく運用してみて問題なければ、旧URLのデータ(/www/blog/)は削除しても構いませんよ〜

お疲れ様でした!!☆☆

【参考サイト】
WordPress2系のシングルサイトから3.0系マルチサイトに移行

【今後の課題】
・captureのブログ(音楽活動情報)の立ち上げ。
・3つのブログを紹介したポータルサイト構築。恐らく、www.nakamurayuji.comになると思われます。
・ルートディレクトリにインストールしたWordPressの親サイトの扱いをどうするか検討する。

【別件】
http://blog.nakamurayuji.com/で使用しているWordPressテーマ「Simplo」がInternet Exploler 9においてメニューの文字が表示されないバグの解決をあわせて行いました。
http://www.s5themes.com/forums/topic/i-can-not-see-the-menus-in-ie/
このサイトに対処方法がありました☆

ではでは☆★☆

  • スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA