【Search Regex】記事を一括置換するプラグインの使い方
この記事では、WordPressの記事を一括検索&置換できるプラグイン「Search Regex」について書きます。
過去の記事に書いていた"癖"を一気に修正できます。
WordPressの記事内にある特定の単語を検索&置換できるプラグインです。導入するとツールメニュー内に専用のページが追加されます。
検索ボックスに入力した単語・文章を含んでいる記事が一覧表示されて該当の場所が黄色くハイライトされます。検索と置換は分離されているので検索だけして置換しないことも可能です。置換を実行する前に完成後のプレビューを確認できるので失敗しにくいです。
過去に勘違いしていた単語や間違いを一気に修正できます。
実を言うと僕は今まで「アフィリエイト」のことを「アフェリエイト」と勘違いしていました。過去何記事分も「アフェリエイト」って呼んでいたんですよ(笑)。読者の方から指摘されました。ちょー恥ずかしいです。
このような場合、通常ならいちいち記事を開いて1つずつ修正する必要があります。本プラグインを使うと一瞬で過去記事すべての「アフェリエイト」を正しい単語である「アフィリエイト」に修正できます。ちまちま修正よりも圧倒的に効率的です。
他にも「chrome」を「Chrome」といったように小文字を大文字に変換したり、「2022年」を「2022年」といったように半角に統一したりできます。
2022年7月に公開されたバージョン3.0から、特定の条件に絞り込んで検索・置換することも可能になりました。例えば、特定の投稿日以降の記事、特定のURLスラッグ・タイトル・IDが含まれている記事だけに絞って置換できます。くっそ便利です。
大文字小文字の区別に対応しています。投稿本文内だけでなく、コメント、投稿メタ情報など検索・置換対象場所も変更できます。検索条件を保存してプリセットとして登録もできます。
正規表現を使った高度な検索・置換も可能です。「2021年は、〇〇でした。」という文言を「2022年は、〇〇だったよーん」といった感じで一部そのままで前後の文章だけ変えることが可能です。素人には難しいですが、より高度な置換をしたい方におすすめです。
使っているWordPressテーマに関係なく利用できます。無料です。
リリース元:John Godley(ブログ、X)
記事執筆時のバージョン:3.1.1(2024年11月23日)
インストール方法
WordPressの管理画面を開きます。左側サイドバー内にある「プラグイン」→「新規プラグインを追加」をクリックします。
右上の検索ボックスに「Search Regex」と入力して検索します。
Search Regex
出てきたプラグインの「今すぐインストール」をクリックします。緑の背景に赤い花のアイコンが目印です。インストールできたら「有効化」をクリックします。
使い方
WordPressの管理画面→左側サイドバー内にある「ツール」→「Search Regex」をクリックします。
「Search Regex」は通常の修正作業と違ってWordPressのデータベースを直接書き換えます。
本来記事編集画面から普通に修正したらリビジョンと呼ばれるいくつかのバックアップが作成されます。本プラグインで置換した場合リビジョンは作成されません。一度変更すると元に戻せないということです。
よって安易な気持ちで適当に置換するのはやめましょう。しっかり必要性を考えて実行することをおすすめします。
置換中に何かしら不具合(エラー)が発生する可能性もあります。そうなった場合中途半端な書き換えになり、最悪の場合ページの表示がおかしくなります。そういった理由から慣れない内の置換前は投稿のバックアップを取ることを推奨します。
投稿のバックアップは管理画面左側サイドバーのツール→「エクスポート」からできます。
以下のような「pc.WordPress.〇〇-〇〇-〇〇.xml
」のファイルがダウンロードできたらバックアップ完了です。
絞り込み
「Search Regex」ページにアクセスして、「入力」の部分で検索するフィールドを選択します。基本はデフォルトの「投稿(コア&カスタム)」のままでOKです。
コメント、ユーザー、WordPress設定、投稿メタ情報などに変更できます。コメントとは記事のコメント欄のことですね。
次に「絞り込み」で検索する場所の条件を指定します。以前は特定の記事に絞り込むことができなかったのですが、大型アップデートの3.0(2022年7月公開)から絞り込めるようになりました。めちゃくちゃありがたい機能です。
いくつか紹介します。
タイトル
特定のタイトルが含まれる記事だけに絞り込めます。
「タイトル」にするとその横に具体的な設定ドロップダウンが表示されます。以下の中から選択できます。
- が等しい
- が等しくない
- に含む
- に含まない
- が以下で始まる
- が以下で終わる
例えば、記事タイトル内の一部に「Vivaldi」と含まれている記事だけに絞りたい場合は、「に含む」にしてその右横のボックスには「Vivaldi」と指定します。検索ボックス下に該当する記事が一覧表示されます。
スラッグ
特定のURLスラッグが含まれる記事だけに絞り込めます。
過去記事全部ではなく特定の記事だけ修正したい場合は、このタイプの絞り込みを利用するといいかなと思います。URLスラッグは自身のサイト内で重複しないためです。タイトルや公開日時だと被る可能性がありますからね。
URLスラッグとは記事URLの末尾にある文字列のことです。僕の場合「https://www.naporitansushi.com/diary/
」の「diary
」の部分です。記事編集画面の右側サイドバー内にある「パーマリンク(URLスラッグ)」という項目から確認できます。
1記事だけに絞り込む場合「が等しい」にして、該当のURLのスラッグをそのままコピペしましょう。当サイトの場合「naporitansushi-words-i-dislike
」にすると1記事だけヒットします。(こちら)
本文
特定の文字列が本文に含まれる記事だけに絞り込めます。
例えば、本文内に「ナポリタン寿司」と書かれている記事内にある「りんご」という文字列を「ぶどう」に変換したい…!といった時に便利です。
今までは過去記事すべてが検索対象だったので、嫌でも「りんご」という文字列すべてが「ぶどう」に変わっていました。
ポイントですが本文にした場合「に含む」にするのがおすすめです。初期の「が等しい」だと、記事内の全文が一致する場合のみに絞り込まれます。わざわざ記事本文の全部を検索ボックスに入力しないといけないのでめんどくさいと思います。
日時
特定の公開日時に絞り込めます。
カレンダーで選択できます。例えば「2022年8月22日」に公開した記事の中で、「ナポリタン寿司」と書かれた部分を「スパゲッティ味噌汁」に変更するといったことができます。
英語表記なので月の英語がわからない方はネットでググってみてください。
「の範囲」にすると任意の日時の間を指定できます。下記画像だと2022年8月1日~8月31日の間ということになります。
個人的に結構使っている絞り込みです。特定の期間の記事だけ修正したい!ってパターンはないんですが、修正したい部分が多い場合に小分けにするため日時絞り込みを活用しています。
例えば過去の全記事対象で「有難う」を「ありがとう」のひらがなに修正したいとします。これまで何百記事と使ってきた場合、修正箇所が多すぎて一括で実行するにはちょっと勇気がいります。途中で失敗したら怖いです。
そんな場合に日時の範囲を使います。対象を今月とか先月とかで区切ることで一回の修正量を減らせます。仮にもしその置換作業が失敗しても今月だけに絞っていたため被害は今月分の記事だけに抑えられます。
そんなことないのが一番なんですが、万が一のことを考えて実行回数は増えるけど小分けにしています。
他にも置換はしないけど記事内の文章から記事を探したい場合にも超使っています。
「最近"ポイント"って単語使った記事あったよな…。記事一覧から記事タイトル見てもさっぱり思い出せないな…。せっかく関連する記事書いたから内部リンク貼りたいのに…」って時がちょこちょこあります。
そんな時に使ったであろう覚えているキーワードを入力します。ただの検索だと過去全記事が対象になってしまい探しにくいので、日時絞り込みを利用します。範囲で過去10日間とかを指定します。
前後の文章もちょっとだけ表示してくれるため「あー!これだこれ!この記事で使ってたわ」と見つけられます。ただ調べたいだけなのでうっかり変な文字に置換しないように注意です。
投稿状態
投稿状態で絞り込めます。以下の中から選択できます。
publish | 公開済 |
future | 予約済(予約公開) |
draft | 下書き |
pending | 承認待ち |
private | 非公開 |
trash | ゴミ箱 |
auto-draft | 自動保存(リビジョン) |
inherit | 継承 |
request-pending | 要求保留 |
request-confirmed | リクエスト確認済み |
request-failed | リクエスト失敗 |
request-completed | リクエスト完了 |
dp-rewrite-republish | 書き換え&再公開状態の記事 |
「publish(公開している記事)」か「draft(下書き)」がメジャーかなと思います。例えば、公開している記事には反映させず下書きの記事だけに絞り込みたい時などですね。まぁ下書きなら普通に記事編集画面で修正してもいい気がします。量にもよりますが。
絞り込み条件の追加(AND、OR)
絞り込み条件は複数指定できます。
ANDにしたい場合は入力の右にある「追加」、ORにしたい場合は絞り込みの右にある「絞り込み条件の追加(OR)」ボタンをクリックします。
例えば公開日時が〇〇、かつ記事本文に〇〇が入っている記事だけに絞り込みたい場合は、AND(追加)になります。一方でスラッグが〇〇、または〇〇の記事に絞り込みたい場合はOR(絞り込み条件の追加)になります。
下記画像のようにANDとOR条件を組み合わせることも可能です。下記画像だと日時が2022年8月1日~31日の間でかつ本文に「Windows」、あるいは「Mac」が入っている記事に絞り込むという意味です。
検索
検索ボックスに検索・置換したい文字を入力します。
今回は試しに「テスト記事」というタイトルの記事内にある「テストです。あっはははは。」という文字列を「テストだぜ!!がーはははは」に変えてみたいと思います。
絞り込みで「タイトル」→「が等しい」→「テスト記事」にします。これでテスト記事というタイトルの記事だけに絞り込まれます。それ以外の記事で「テストです。あっはははは。」という文字列を使っていてもヒットしなくなります。
特定の記事ではなく過去記事すべてを検索対象に含みたい場合は、「絞り込み」は何も設定しません。デフォルトの「投稿タイプ」でOKです。
検索ボックスに「テストです。あっはははは。」と入力します。
必要に応じて右側の「フラグ」を調整します。大文字小文字を区別するか正規表現を使うかどうか指定できます。日本語を検索する場合は大文字も小文字も関係ありません。ローマ字の時だけですね。
正規表現ですが、理解していない方は弄らないほうがいいです。詳しくはこちらを参考にしてみてください。
青色の「検索」ボタンをクリックするとデータベース検索が開始されます。数秒まつと該当の場所が黄色ハイライトされて一覧表示されます。
量が多い場合は「検索表示数」を25件から50件以上に変更するといいかもしれません。あまり大きくするとWordPressに負担がかかりそうなので注意です。
置換
置換欄のテキストボックスに置換後の文字列を入力します。今回の場合は「テストだぜ!!がーはははは」ですね。
入力すると「検索条件が変更されました。最新の結果を表示するには、更新してください。」と表示されるので、「更新」ボタンをクリックします。
「すべて置換」は、結果後のプレビューを表示せずにすぐに置換作業を開始するボタンです。いきなりクリックするのは絶対におすすめしません。まずは「更新」で置換後の状態を確認しましょう。
再び検索結果が更新されます。
先ほど検索した時は黄色ハイライトでしたが、置換後の文字列に置き換わってオレンジハイライトで表示されます。この時点ではまだ置換されていません。あくまでプレビューです。この時にどこかおかしな部分を発見したら戻れます。
プレビューを確認してOKの場合は「すべて置換」をクリックします。
置換作業が開始されます。
進行状況が青いゲージで表示されるので100%になるまで待ちます。量が多いほど時間がかかります。今回は1記事の一部を変更するだけなので一瞬で終わりました。この時、置換しているタブを閉じなければ別のタブを見ていてもOKです。
100%になったら「完了」をクリックします。ゲージの下に「〇 rows」といった感じで何記事置換したか表示されます。今回の場合1記事+その記事のリビジョン(自動保存)が対象だったので2と表示されました。
記事編集画面を開いてちゃんと置換されているか確認してみます。すでに開いていた場合はリロードします。
無事に「テストです。あっはははは。」を全部「テストだぜ!!がーはははは」に変更できました。
プリセットの活用方法
検索条件をプリセットとして保存・呼び出しできます。本プラグインをかなりヘビーに利用している方におすすめです。たまーに置換するくらいの人は別に作成する必要はありません。
例えば、記事の投稿者がAでかつ日時が2022年5月以降…といった条件をよく利用する方はプリセットに登録すると便利です。次回以降いちいち設定しなくても、プリセットから呼び出せば自動的に設定した条件が適用されます。
プリセットに登録したい条件を設定して、プリセットの右にあるミートボールメニュー(三点ボタン)→「検索を新規プリセットとして保存」をクリックします。
名前を決めて「保存」をクリックします。日本語でも英語でもOKです。
これで次回以降プリセットから保存した設定を呼び出せます。
プリセットの編集・削除は上部の「プリセット」タブからできます。
【応用編】正規表現を使った検索・置換
正規表現を使った高度な検索・置換も可能です。「正規表現って何よ?」という方は無理に手を出さないほうがいいと思います。失敗する可能性があります。
正規表現を使う場合、入力のフラグにある「正規表現」にチェックを入れます。この状態でテキストボックスに正規表現を入力します。
正規表現は奥が深くて簡単には語れませんが、「Search Regex」の場合は「.*
」が使いやすいと思います。任意の文字という意味です。前後の文字を変えて中央の文字は変更しない…といったことが可能です。
試しに鍵括弧で囲まれた文字を検索→中の文字はそのままで括弧記号だけを変更してみます。正規表現をオンにした状態で以下のように検索ボックスに書き込みます。かっこもそのまま入力します。
「(.*)」
数秒まつと検索結果が表示されます。サイト上の「〇〇」という文字列がヒットします。
続いて置換の入力ボックスに以下のように入力します。入力できたら「検索」をクリックします。正規表現は通常の置換よりも失敗しやすいので必ずプレビューをチェックしましょう。
『($1)』
すると、〇〇はそのままで前後の鍵括弧記号だけを二重鍵括弧にできました。
上記のように、特定の文字はそのままでほかの部分を変更したい時に「(.*)
」が役立ちます。
置換後の文字列は「(.*)
」ではなく、「$1
」にするのがポイントですね。置換ボックスも「(.*)
」だとおかしな結果になります。ここらへんは「Search Regex」ではなく正規表現の話です。僕もよく理解していません。
感想
以上、WordPressの記事を絞り込んで検索&置換できるプラグイン「Search Regex」についてでした。
本プラグインの存在を知らなかったら、数百ある記事を一つ一つ修正しないといけない…って考えると恐ろしいです。データベースを直接書き換えるので、知識がない状態だとかなーりリスクがありますが、使いこなせると大幅に時間短縮できて便利です。