WordPressのカスタマイズ方法やプラグインレビューを中心に、パソコン/動物/植物のことなどを紹介するホームページです
Plugin "Search Regex" that replaces characters and codes written in the text etc.

本文などに書かれている文字やコードを置き換えるプラグイン「Search Regex」

公開日:2017年2月1日 バックエンド(管理)
最近リリースされたバージョン2.0では、プラグインを使って、個別または一括で単語を置き換えると、置き換えを行った投稿の更新日がその日になってしまうという現象が発生していましたが、公式ページのサポートへ問い合わせをおこなったところ、2.1以降では解消されています。

※WordPressのバージョンを5.2にしてこのプラグインを使ったらいきなりエラーメールが届くようになったという方、文末にあるリンク記事の方法で対処すると問題が解消できますので参考にしてみてください。

WordPressでサイトを作り、たくさんの投稿などのコンテンツを作った後、「この文言を変更したい」とか「不要になったショートコードやphpプログラムを削除したり編集したい」と思うことありませんか?

そんなときどうしていますか?まさか・・・1つ1つ投稿編集画面を開いて確認してますか??

数が少なければそれでもいいかも知れないですが、何百、何千となったら・・・もうお手上げですね。まあショートコードはコードがそのまま表示されてしまうだけなので不格好になるだけですが、プラグインの吐き出す情報をphpを使って表現をしていた場合はエラーとなり、ページ自体が表示されないこともあります。

そこで重宝するのが今回紹介する「Search Regex」というプラグイン。プラグイン名でネット検索するとたくさん紹介されていますから目に留まると思います。「Search Regex」は管理画面側から投稿や固定ページ、コメント、プログラムそのものなどに含まれた語句を検索して指定語句に置き換えたり、1つ1つ編集したりできる便利なプラグインです。

フロントエンド(閲覧画面)で検索を行うプラグインはたくさんありますが、バックエンドで検索できるのはおそらくこの【Search Regex】だけだと思います。単純な文字の検索ならフロントエンドで検索してページを表示してから編集できますが、フロントエンドでは文字化されてしまうショートコードやphpプログラムなどは不可能です。そんなときに【Search Regex】は大活躍します。

【Search Regex】プラグインの基本的な機能・できること

  1. 指定した条件の文字列に合致する投稿や固定ページの一覧が検索できる
  2. 検索結果から置き換える文字を指定して一括更新できる
  3. 検索結果から個別に編集作業を行うことができる
  4. 「本文」や「タイトル」「コメント」など部分的なコンテンツ指定で検索できる
  5. 「前方一致」や「大文字と小文字の区別」など細かく条件を指定して検索できる

本記事を参考にWordPressサイトへプラグインの導入を検討される方へ

WordPressは古くから無料で配布されているサイト作成ツール(CMS)で、随時改良が加えられており、さまざまなバージョンが存在します。さらにWordPressを動かすためのプログラムであるPHP、サイトのデータを保存しておくためのデータベースについても様々なバージョンがあります。そしてWordPress本体同様にプラグインについてもさまざまなバージョンが存在します。本記事を参考にプラグインの導入をお考えの方は、以下に留意の上でインストールするようにしてください。

  • テスト環境での動作に基づいた紹介記事ですので、すべての環境で正常に動作するかどうかは不明です
    ※本記事の内容についてはページ内に記載しているプラグインバージョンのものになります。現在のバージョンと異なる場合、機能などが異なる場合があります。
    ※また、ページによってはテスト環境、テストしたプラグインバージョン等の表示が本文内にない場合、ページタイトル下にある最終更新日当時の情報となりますので、現在のバージョンでは全く違う機能となっているかも知れません。
  • プラグインに無料版と有料版(Pro版)がある場合、特に記載がなければ無料版の情報のみを紹介しています
  • このページでプラグインを使用する際に必要なショートコードやコードなどは、コピーして使用することができますが、環境によっては記号などが文字化けすることがあります。コピーしたのに動作しない場合は特に「”」「’」などの記号を入力し直してみてください。
  • プラグイン本体の動作不具合や質問などは公式サイトのフォーラムなどで行ってください(ここでは質問にお答えすることはできません)

【Search Regex】プラグインの設定画面や表示の日本語化と翻訳

当サイトで私が翻訳した【Search Regex】プラグインの日本語化ファイルを配布しています。

翻訳ファイルは

からダウンロードできます(ダウンロードの方法や日本語の適用方法なども解説しています)

翻訳することで設定が容易になり、重要な項目の設定漏れも少なくなりますから日本語化をお勧めします。

※バージョン2.0では翻訳が適用されませんのでご注意ください(2020年5月9日確認時点)

【Search Regex】プラグインのインストールと設定

インストール方法

インストールはプラグインの新規追加でプラグイン名を入力して検索してインストールするか、ページ先頭の画像をクリックして表示されるWordPressのプラグイン公式配布ページがダウンロード後、管理画面からアップロードインストールしてください。

WordPressを使い始めて間もない方(初心者の方)は、より詳細なプラグインのインストール手順や、インストール時に起こる問題などへの対処方法をまとめた【WordPress】プラグインのインストール&追加方法とエラー対処の方法も併せてご覧ください。

【Search Regex】プラグインの基本的な使い方

使うときはダッシュボードから「ツール」→「Search Regex」を選択します

上のような画面になります(日本語翻訳済の画面です)

  1. 検索ソース・・・検索する条件(場所や結果に表示する数など)を設定します
  2. 検索する文字列・・・検索ソースの中から検索を行う語句を指定します(英数字でもマルチバイト文字でもOK)
  3. 置き換える文字列・・・検索文字列と置き換える文字列を設定します

正規表現で「前方一致」や「全文一致」「大文字と小文字の区別」などを指定できます

そして

「検索」をクリックすると条件を満たした投稿などのタイトルや指定した文字列が含まれる部分が表示されます

結果の右側に「表示」と「編集」のリンクが出ますので、クリックして実際の表示を確認したり、投稿編集画面を開いて編集することができます

「置き換え」をクリックすると検索した部分と置き換えた場合の一覧が表示されます

検索した文字に対して置き換えた場合の部分的な内容が表示されます。編集は1と同じです

「置き換えて保存」をクリックすると置き換えが反映されます

置き換えたものを保存して反映します。置き換えるものが確実な場合にはこれ1つで結果に表示されたすべてのコンテンツが更新されます

※日本語などのマルチバイト文字でも検索できます
※複数のキーワードで検索してみましたが、一続きの単語のみに対応しているようです(一致条件は設定できます)ので、途中にスペースが入るコードなどを検索する場合はユニークな部分の単語で検索すると候補が表示されます。

一発ですべての更新をしてしまいたいところですが、画面上部にも書いてある通りすべて自己責任ですからよく確認してから行うようにしましょう。現実的には「検索」をクリックして出てきた結果から更新の必要があるコンテンツを1つ1つ編集していくというのが無難でしょう。

検索結果から「編集」をクリックすると同一タブで投稿編集画面が開いてしまうので、右クリックして「新しいタブで開く」を選択した方が検索画面を保持できるので使い勝手がいいと思います(編集後は元の画面を表示して再度「検索」をクリックすれば残りの修正候補のみ表示されます)。

【Search Regex】プラグインの便利な使い方・カスタマイズ方法など

より便利に使うカスタマイズ技やテストサイトで使用した結果や感想、WordPressのプラグイン公式配布ページには書かれていない事柄などを紹介します。

カスタム投稿タイプを検索対象に含める方法

【Search Regex】は有効化段階ではカスタム投稿タイプの投稿には対応していません。従って当然ですが、検索結果には投稿と固定ページの結果のみが表示されます。

このプラグインを使う方はおそらくたくさんの記事を書かれていることだと思いますし、カスタム投稿タイプを使うようなヘビーユーザーの方も多いと思います。その中でカスタム投稿タイプが検索対象にならないのは残念ですね。

でもあきらめるにはまだ早い!!ちょっとプラグインのソースをカスタマイズするだけでカスタム投稿タイプも含めることができます。

投稿本文を例に挙げて説明しますね。

ダッシュボードから「プラグイン」→「プラグイン編集」を開き、「Search Regex」を選択します
たくさんあるファイルの中から「search-regex/searches/post_content.php」をクリックして開きます
先頭の方にある以下の記述を下のように変更します
<変更前のソースコード>

$sql = "SELECT ID, post_content, post_title FROM {$wpdb->posts} WHERE post_status != 'inherit' AND post_type IN ('post','page') ORDER BY ID ".$orderby;

<変更後のソースコード>

$sql = "SELECT ID, post_content, post_title FROM {$wpdb->posts} WHERE post_status != 'inherit' AND post_type IN ('post','page','カスタム投稿タイプのスラグ') ORDER BY ID ".$orderby;

※「カスタム投稿タイプのスラグ」の部分に半角英数字のスラグを入力します(全ての投稿タイプを示す「any」は使えませんでした)
※複数のカスタム投稿タイプがある場合は「,’カスタム投稿タイプのスラグ’」を追加していきます

※その他のファイルも同様のクエリーがありますからソースをよく見て条件追加してください

※この編集に失敗するとプラグインにエラーが発生してサイトの管理画面が開けなくなることがあります。そのような場合には

【WordPress】プラグインのインストール&追加方法とエラー対処の方法

を参考に復旧させてからやり直してください

【Search Regex】を実際に使ってみた

前述したとおり【Search Regex】はバックエンドでしか見られないものの検索で威力を発揮します。

私の場合はAdrotateという広告をランダム表示するプラグインを使い、phpで投稿本文へ挿入していました。そして、ざっくり言えばあまり効果的でなかったのでこのプラグインを削除しようと思ったのですが・・・削除した途端本文へphpで挿入した記事はエラーになり表示できなくなってしまいました。

慌ててプラグインを再度有効化して表示エラーにはならなくなったのですが・・・さて、どうやってこのコードが含まれているコンテンツを見つけるかと途方にくれました(1000以上あるコンテンツを一つ一つ確認するのか・・・)

このプラグインの場合、広告を削除してしまえばphpは動くけど表示する内容がないから非表示にはなるのですが、気になるのがヘッダー部分に挿入されるCSS。結構な行数があってこれがひょっとするとSEOに影響するかな?という懸念があったので、どうしても削除したかったのです。

そこで見つけたのがこの【Search Regex】。早速インストールして使ってみました。

検索対象は投稿本文にして、Adrotateの内容を挿入するコードに含まれる「adrotate」という文字列で検索

・・・するとたくさんのコンテンツが結果に表示され、無事に編集完了!!

そして再度プラグインを停止してページを表示してみると・・・うんうん大丈夫!!・・・・ン???やっぱりエラーの出るページがある。

よく見てみるとそれはカスタム投稿タイプを使ったコンテンツでした。そうか!!【Search Regex】は「投稿」と「固定ページ」しか検索対象にならないのか。

ということでこれまた前述の「カスタム投稿タイプ」を含めるためのカスタマイズを行いました。

そして無事全部の投稿タイプのコンテンツの編集が完了!!となったわけです。

一括で置き換えてもよかったのですが、やっぱり怖いので今回は1つ1つ修正しました。

プラグイン自体は使う機会以外有効化する必要がありませんから、停止して残してあります。

・・・といった経緯でこの【Search Regex】に助けられました。こんなケースがある人はあまりいないかもしれませんが、参考になれば幸いです。

WordPress5.2以降でエラーメールが届いた時は

多分ずいぶん前からエラーは出ていたのでしょうけど、動作は問題なかったし・・・でもWordPressのバージョン5.2ではメールがバンバン来るようになってしまったので、以下を参考にしてプラグインソースの修正を行ってください。

Search Regexプラグインでエラーが出た、またはエラーを知らせるメールが来た場合の対処

WordPressのカスタマイズ・不具合対応などご相談ください

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。