WordPressの引越でSQLデータの置換はNG!WP-CLIのWP Search-replaceを使おう

久しぶりの投稿です。超絶乱れた生活習慣を見直しております。

目次

前置き

さて、みなさんWordPressの引越しってどうやってますか?ローカル環境から本番サーバへのアップ、テストサーバから本番サーバへのアップなど、Web制作でWordPressを使っている人であれば誰しも経験したことがあるのではないでしょうか?

その際、みなさんはどのような方法で引越ししていますか?私が知っている方法としては下記が考えられるのですが、いかがでしょうか。

  • WordPressのプラグインを使った引越し(All in One WP Migration)
  • SQLデータをエクスポート・インポートの引越し
  • エックスサーバーの機能を使った引越し

個人的に2のSQLデータをエクスポート・インポートの引っ越しがDBを直接触ってる感があってかっこいいなんて思うのですが、ある程度知識がないと事故りますよね。はい、私も先日までその一人でした。

幸いにも大事故にはならなかったのですが、WordPressの有料テーマを使用した案件で、その事故はおきました。

有料テーマのプラグインってカスタマイザーなどを使っていて、データベースのデータがシリアライズ化されてるんですよね。シリアライズ化というのは下記のような感じの記述。

a:10:{i:0;s:31:"query-monitor/query-monitor.php";i:1;s:30:"advanced-custom-fields/acf.php";i:2;s:43:"all-in-one-seo-pack/all_in_one_seo_pack.php";i:3;s:33:"duplicate-post/duplicate-post.php";i:4;s:45:"enable-media-replace/enable-media-replace.php";i:5;s:21:"filebird/filebird.php";i:6;s:43:"map-block-gutenberg/map-block-gutenberg.php";i:7;s:25:"mw-wp-form/mw-wp-form.php";i:8;s:43:"public-post-preview/public-post-preview.php";i:9;s:37:"tinymce-advanced/tinymce-advanced.php";}

このコードの下記の部分。

i:0;s:31:"query-monitor/query-monitor.php";

sがStringで31バイトありますよ〜って意味。
このコードはプラグインだけど、仮にサイトのURLを置換した場合「localhost」→「seeder.site」9バイトから11バイトに変わるわけ。””内の文字列だけではなく、sの値も変えてあげる必要があります。これを一つ一つ変えていくのは現実的に不可能ですよね。

本題(WP Search-replaceとは)

そんなシリアライズされたWordPressの文字列置換を一気に解決してくれるのがWP-CLIのWP Search-replace。(この事故のおかげでWordPressに便利コマンドが用意されていることを知りました。)

このコマンドを使えばシリアライズされた文字列も一気に置換できます。SSHでWordPressがあるサーバーにアクセスしてWordPressのrootディレクトリで下のコマンドを叩けば置換できます。(左が置換前で右が置換後)

wp search-replace 'http://wordpress.local' 'http://example.local'

いやぁ、めちゃくちゃ便利。WP CLIには他にも便利なコマンドがありますのでぜひ覗いてみては。

WordPress Developer Resources
WP-CLI Commands | Developer.WordPress.org Documentation for all currently available WP-CLI commands, including usage and subcommands.

この記事はGatespace7s Blogを参考にしました。助かりました、ありがとうございました。

参考記事

Gatespace's Blog
WordPressの引っ越しに便利な wp search-replace | Gatespace's Blog WP-CLIアドベントカレンダーの2日目担当の @gatespace_k です。 今日は個人的に一番便利な機能 wp search-replace

不安な人はおとなしくこれを使うのが良さそう

WordPress.org 日本語
All-in-One WP Migration 1クリックでサイトを移動、転送、コピー、移行、バックアップします。すばやくて簡単、高い信頼性。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

こんにちは、板川恵司朗です。

目次