WordPressサイトの記事内にある文字列やコード、URLを検索して一気に変換できるプラグイン「Search Regex」を紹介します。
Search Regexは、WordPressで使用しているデータベースの中から、対象となる文字列を検索して一括変換できるので、記事内の文字列やコード、URLを効率よく置き換えることができます。
また、正規表現が使えるので、複数の文字列をまとめて検索したり置換するときに便利です。
記事内の文言が間違っている場合や、商品名やブランド・名称の一括変更、プラグイン変更時のコード修正、サイトのSSL化で必要なURL修正(http → https)には必須のプラグインです。
ただし、Search Regexは2015年から更新されておらず、最新のWordPress5.2以降で検索した場合は「サイトに重大なエラーがありました。」と表示され、管理者にも「サイトで技術的な問題が発生しています」というメールが届くようになりました。
プラグインのコードを修正すればエラーは表示されなくなりますが、トラブルが起こる可能性もあるので、代わりのプラグイン「Better Search Replace」等の利用も検討してください。
※ Search Regexで文字列を置き換えると、データベースも書き換わります。世の中何が起こるかわからないので、事前にWordPressのバックアップをお忘れなく。
Search Regexで文字列やURLを一括変換
WordPressで製作したウェブサイトやブログの文字列を全て置き換えないといけない場合、記事を1本ずつ検証しながら修正するのはとても面倒ですよね。記事が多いとなおさらです。
そんな時に利用すると便利なのが、文字や単語をまとめて一括変換できるWordPressプラグイン「Search Regex」です。
Search Regexは、WordPressで使用しているデータベース全体の中から対象の文字列を検索して一括変換できるので、効率よく単語を置き換えることができます。
今まで使っていた用語が全て間違っていた場合や、商品名・屋号の変更、アルファベットの大文字小文字を変換するような時は、とても重宝します。
一例を挙げると、「wordpress」の語頭を大文字「WordPress」に変換するとか、「サーバー」を「サーバ」に変換するような感じでしょうか。
あと、単語間違いでよくあるのが「コミニュケーション」→「コミュニケーション」や、「シュミレーション」→「シミュレーション」辺りです。こういった間違いもまとめて修正できます。
また、コードやURLも変換可能です。サイト移転やURL変更の時は、画像のパスやリンクを新しいURLに変更しないといけませんが、Search Regexを使えばあっという間に変換できます。
サイトのSSL化でもコード内のURLを全て修正( http → https )する作業が必要ですが、Search Regexを使えば一括でhttpsに変換できるので、とても重宝します。
Search Regexの使い方
では、Search Regexを使ってみましょう。まずはWordPressのダッシュボード左メニューから、「プラグイン」→「新規追加」に進み、右上の検索窓に「search regex」と入力します。
プラグインが見つかったら「いますぐインストール」をクリックして、「プラグインを有効化」をクリックしてください。
Search Regexはダッシュボード左メニューの「ツール」から開きます。「Search Regex」をクリックすると、以下のメイン画面が現れます。
まずは検索設定の「Source」「Limit to:」「Order By:」の3項目を設定しましょう。
最初の「Source」は検索・置換の対象項目で、それぞれ以下に対応しています。
Comment author: コメントの名前
Comment author email:コメントのメールアドレス
Comment author URL: コメントのURL
Comment content: コメントの内容
Post content: 記事本文
Post excerpt: 記事の抜粋
Post meta value: 記事のカスタムフィールド
Post title: 記事タイトル
Post URL: 記事URL
項目はいろいろありますが、基本的にデフォルトの「Post content」を使えばOKです。
「Limit to」は、検索・置換の上限です。ここはデフォルトの「No limit」でOKです。
「Order By」は検索結果の並び方です。「Ascending」は昇順、「Descending」は降順です。
Search Regexで文字列を検索
では、Search Regexで記事や固定ページ内の文字列を検索してみましょう。検索設定はそのままで、「Search pattern」に検索対象の文字を入力して「Search」をクリックすればOKです。
こんな感じで検索結果が表示されます。文字列の大文字・小文字や全角・半角もちゃんと区別してくれますが、画像のalt属性や画像のパスも検索結果に表示するので、一括修正の時には注意してください。
検索結果を検証するときは、右側の「view」からそのページを開き、修正するなら「edit」で編集ページに移動するので、その場で文字列を修正することができます。
ここで注意点ですが、「view」も「edit」も別のタブでは開きません。
検索結果の数が多い場合、確認や修正のたびにいちいちSearch Regexへ戻るのは非常に面倒なので、「ctrl」キーを押しながらリンクをクリックして、新しいタブを開くようにしてください。(Macはcommandキーでしたっけ?)こうすると文字列の確認と修正が別ウィンドウでできるようになります。
あともう一点、「view」も「edit」もその文字列があるページに移動するだけで、ページ内の文字列自体には移動しません。対象の文字列に移動してハイライト表示してくれると便利ですけどね。
Search Regexで文字列を置換
続いて文字列を置き換えてみましょう。まずは「Search pattern」に検索する文字列を、「Replace pattern」に置き換える文字列を入力して「Replace」をクリックします。
検索した文字列と置き換え後の文字列が表示されるので、一度確認しましょう。この時点ではまだ置き換えは完了していません。
問題がなければ、「Replace & Save」をクリックしてください。
あっという間に文字列の置き換えが終了します。う~ん、すばらしい・・・
あと、通常はこれでめでたく置換完了なのですが、英単語を置き換えると画像のパス等に影響する場合があります。「Replace」のところで「この項目は除外」みたいなのがあればいいのですが。
とはいえ、大量の文字列でもあっという間に置き換わるので、これぐらいは大目に見ましょう。人力で1か所ずつ修正してたら大変ですもんね。
Search Regex 正規表現の使い方
Search Regexで正規表現を使う場合は、「Regex:」にチェックを入れます。これで複数の文字列を同時に検索したり、様々な検索条件を設定することができます。
正規表現とは、メタ文字を用いて複数の文字列を短く表現する方法で、文字列を検索したり置換するときに使うと便利です。javaやPython、Ruby、PHPなどの言語ではおなじみですね。
「Regex:」の横に並ぶ3つのチェックボックスは、それぞれ以下の意味があります。
- case-insensitive : アルファベットの大文字・小文字を区別しない
- multi-line : 複数行を対象に正規表現で用いる先頭「^」と末尾「$」を有効にする
- dot-all : ドット「.」を改行「\n」に一致させる
正規表現を使うときは「Regex:」にチェックを入れて、検索する文字列を「/」で囲みます。いくつか正規表現のサンプルをお見せしましょう。まずは複数の文字列を一度に検索します。
WordPressカテゴリ WordPressタグ WordPressプラグイン
正規表現を使うと、3つの文字列を以下の1行に短縮できます。1回で対象の文字列を全て検索できるので、3回に分ける必要がなくなります。
/WordPress(カテゴリ|タグ|プラグイン)/
次に記事内の見出しタグ全てを1度に検索してみましょう。正規表現ではこう記述します。
/<h[123456]>/
これで記事内全ての見出しタグを一回で検索できます。
Search Regexのエラー
Search Regexは2015年から更新されておらず、WordPress5.2以降でSearch Regexを利用すると、エラーが表示されるようになりました。
検索すると「サイトに重大なエラーがありました。 詳細については、サイト管理者のメール受信ボックスを確認してください。」と表示され、管理者には「サイトで技術的な問題が発生しています」というメールが届くようになっています。
こんなメールが届くと、WordPressで何か問題が起きたのではないかと不安になりますが、WordPressもSearch Regexも問題なく使えるので、このエラーメールは放置でOKです。
とはいえ、Search Regexを使うたびにエラーメールが届くと、やっぱり気になりますよね。
Naifixさんが「Search Regex使用時に「サイトで技術的な問題が発生しています」というエラーメールが届くときの解決方法」という記事で、プラグインのPHPコードを修正してエラー表示を止める方法を紹介しているので、気になる方はこちらの記事を参考にしてください。

もしくは、代わりのプラグイン「Better Search Replace」等の利用も検討してください。このプラグインもSearch Regexと同様に、サイト内の文字列を検索・置換することができます。