WP-cliの文字列置換は単純な文字列置換でなくてPHPシリアライズも対応しているよ!

WordPressは悪名高きPHPシリアライズでデータを保存するプラグインが多いです。

 

問題の内容

PHPシリアライズにはデータの大きさも記録されています。

なので単純に文字列データだけを置換すると、その記録されたデータの大きさと不整合が起きてエラーとなるようです。

 

しかし wp-cli で下記のようにDBデータ置換を行うと、上記のphpシリアライズの問題も処理して文字列置換します。

--dry-run はテストのみなので、ちゃんとテストから実行しましょう。

wp search-replace --dry-run 'https://hoge.dev' 'https://honban.jp'

 

その他にも置換してDBダンプファイルを出力する等も出来るので素直に使うべきですね。

 

wp search-replace --export 'https://hoge.dev' 'https://honban.jp' > ~/tmp/replace.sql

 

文字列置換で専用ツールいらんやろーとか思っていた自分を殴りたい。 orz

 

 

 

 

 

参考URL

WordPressの引っ越しに便利な wp search-replace | Gatespace's Blog

https://gatespace.jp/2014/12/02/wp-cli-wp-search-replace/

wp search-replace | WP-CLI Command | WordPress Developer Resources
https://developer.wordpress.org/cli/commands/search-replace/

PHP: serialize - Manual
https://www.php.net/manual/ja/function.serialize.php