コフス技術ブログ

WP-CLIを用いたURLの置換

この記事はにメンテナンスが行われています。

WordPressで構築したサイトのドメイン変更・URL変更にはシリアライズに対応した置換ツールSearch Replace DBを用いる事が多いと思いますが、WP-CLIを利用できる場合はsearch-replaceコマンドでも同様に置換を行うことができます。

例としてDocker内でWP-CLIを使い置換を行う場合は以下のようにします。
https://example.com/wp-contenthttps://example.com/cms/wp-contentとしたい場合)

Terminal window
docker-compose run --rm wpcli search-replace --dry-run 'https://example.com/wp-content' 'https://example.com/cms/wp-content' --all-tables

--dry-runを付ける事で事前確認ができ、--all-tablesとする事でwpdb以外のすべてのテーブルを対象に置換を行うことができます。
※ 一部のプラグイン(Yoast SEOなど)を使用している場合等で--all-tablesが必要となる事があります。

オプションは豊富で正規表現を用いた検索も可能です。

参考:オプション一覧


事前確認が終わり、問題がなければ--dry-runを外して実際の置換処理を行います。

Terminal window
docker-compose run --rm wpcli search-replace 'https://example.com/wp-content' 'https://example.com/cms/wp-content' --all-tables

基本的な使い方は以上です。

Search Replace DBに比べるとファイルの設置&削除が不要であるのと、CLI経由で処理が可能な為バッチ処理に組み込みやすい、などのメリットがありそうです。
作業環境でWP-CLIが利用できる場合は活用してみるといいでしょう。