本稿ではWP-CLIで文字列を置換する方法について記します。
というか、ただの覚え書きです。
ついでにおすすめ文字列置換プラグインの紹介をつけておきます。
調べたきっかけ
先日なんとなく相互さんのブログ眺めていたところ、こんな記事がありました。
なぜ、いきなりWP-CLI!?
びっくりしまして。
私が発したツイートと記事主さんのリプライ。
便利そうなプラグインに見える。該当箇所ごとに確認無しの単純な置換でいいならSearchRegexよりも直観的に使えるかも。
ただその前に、どうしてWP-CLIがいきなり出てきたのか不思議で仕方ない……。コンテンツ内のテキストやタグを一括置換するプラグイン – WordPress Memo https://t.co/dTGiBaUoUX
— 天満川鈴 (@rin_tenmagawa) May 9, 2021
私も不思議に思って、SearchRegex のコードを軽くみてみたら、WP-CLI 用のコードがあって、WP-CLI で使えるようです。その様な記事を見たか、どなたかにアドバイスを受けたのではないでしょうか。
プラグイン使ってみてください。— Katsushi Kawamori (@dodesyo312) May 9, 2021
へえ……ということで、調べてみました。
WP-CLIで文字列を置換する方法
WP-CLIコマンドを眺めてみたところ、こんな感じでいけそうです。
前提として作業ユーザーに切り替えておいてください。
$ cd /path/to/DocumentRoot $ wp search-replace 'foo' 'bar' --dry-run $ wp search-replace 'foo' 'bar' wp_posts wp_postmeta
1行目の「/Path/to」は○とか△とかの当て字と同じです。
例えばKUSANAGIを使っていれば「/home/kusanagi/プロファイル名」を入れてください。
2行目は検索だけの実行。
どの程度変換されるのか、どのテーブルが変換されるのかを確認するためです。
3行目は置換の実行。
投稿とカスタムフィールドに制限するオプションをつけています。
もっと詳しく知りたい方はこちらをどうぞ。
ただし……
私はWP-CLIでの置換を推奨しません。
先のやりとりでも出てきたSearch Regexプラグインで1個ずつ進めることを推奨します。
どんなトラブルが待ち構えているかわかりませんので。
確認はいらないから一括で置換したいという場合は、こちらのプラグインがよいでしょう。
まさに今回の一件から生まれたプラグインです。
私は試していませんが、どう考えてもWP-CLI使うより楽なはずです。
使ってみました。
使い心地よかったです。
どちらのプラグインにしても。
置換作業なんてそんなにするものじゃありませんし、終わったらアンインストールするのがいいでしょう。
まとめ
WP-CLIのコマンド実行を代行してお金もらえるなんて、世の中そんなボロいの?
それほどのことじゃないから、今回のプラグイン作者さんも置換プラグインを無料公開したんでしょ……