WP-CLIの便利機能の一つ、検索置換ができるwp search replace
を使ってマルチサイトのURL一括置換をやってみたところ以下のようにエラーがでてしまいました。
Error: Site 'example.com' not found. Verify
--url= matches an existing site.
やりかたは公式にも書いてあるのですが、ちょっとつまづいたので方法をご紹介します。
マルチサイト用のデータベース変換
wp search-replace | WordPress Developer Resources https://developer.wordpress.org/cli/commands/search-replace/
マルチサイトの場合--network
を行うことで検索置換できるらしいのですが、やってみたところデータベースエラーになりました。そこで--urlを使って置換します。
本番用のマルチサイトのデータベースを開発用のデータベースに変換する
$ wp search-replace --url=example.com example.com example.dev
本番:example.com
開発:example.dev
うまくいった!でもメインサイトのみで、子サイトはDBエラー。
子サイト用のtableを変換する
子サイト用のtableを置換するために--networkオプションを使ってマルチサイトの置換します。
wp search-replace --network 'https://example.test' 'https://example.dev'
これでメインも子サイトもうまくいきました!
子サイトが2つ以上の場合はためしていませんが、全table対象のためおそらく大丈夫なはずです。