ローカルな開発環境でのWordPressのDBを最新の現行サイトのものに入れ替えたところ、マルチサイトに固有の要因が原因で意外と苦労したので解決手段とあわせて記録しておきましょう。

サーバにsshで接続可能な環境なので、

mysqldump {"DB名"} >backupfile.sql

で、DBの中身を取り出し、あらかじめ空にした開発環境のDBに

mysql {"DB名"} < backupfile.sql

で、取り込む。という手順をとっています。

その後、url関連の部分を必要に応じて、開発環境のものに書き換え、

  • wp_optionsのoption_name in (“siteurl”, “home”)
  • wp_blogsの”domain”, “path”
  • wp_siteの”domain”, “path”
  • wp_sitemetaのmeta_key=”siteurl”

この部分のマルチサイトで増えたテーブル(wp_blogs, wp_site, wp_sitemeta)の書き換えを忘れるor間違えると、「データベース接続確立エラー」とブラウザ上で表示されることになるのでちょっと混乱しやすい。(もちろん、自分もwp-config.phpのDBアクセス情報を確認してしまった。この場合の「データベース接続確立エラー」はこの部分とは全く関係がないようです。)

一通り設定して、これで接続可能になるはず。
と思いきや、親サイトには接続できても、マルチサイトにおける子サイトにはつながりませんでした(親サイトで404ページが出る状態)。

親サイトの管理者画面にもログインできましたが、子サイトの管理画面のurlに行っても子サイトのURLのままで親サイトの管理画面が表示されるという状況に。そのため、.htaccessも問題なく動作していて、なぜか子サイトが読み込まれていない状態と言えそうです。
サイトネットワークの管理画面には問題なく来れました。

さて、どうやって解決したものか。
カスタム投稿タイプ追加時に…

ログインして続きを読む