当記事では、WordPress投稿や固定ページなどの文字を一括検索・置換する事ができる無料プラグイン『Search Regex(サーチ・リジェックス)』の導入方法・基本設定・使い方について解説します。
このプラグインを上手く利用すれば、記述や誤字などの修正を一括検索し置換(ちかん)でき、管理・更新に関わる作業を大幅に効率化する事ができます。しかも、文章・単語はもちろん、文章を構成するhtmlタグも対象となるので、投稿内の特定の要素にclassやスタイルを適用したり、除去したり……といったことも可能です。
Index
WordPressプラグイン『Search Regex』解説
『Search Regex』はJohn Godley氏によって公開された完全無料のWordPress用プラグイン。2007年に更新が停止し、しばらくエラーや不具合の報告も散見されてましたが、2020年5月に更新が再開され提供された『Ver2.0』以後、バグフィックスや、複数行の検索などにも対応し、UIやドキュメントも日本語化するなど一層使いやすくなりました。
インストールの手順
『Search Regex』はWordPressの公式プラグインディレクトリに登録されているので、インストール方法は簡単です。WordPress管理画面の左メニュー [プラグイン] > [新規追加]から『Search Regex』を検索して、『今すぐインストール』をクリックするだけです。
ダウンロードしFTP経由でインストールしたい、という場合には下記いずれかのリンクからダウンロードできます。
インストール後は、『有効化』すればインストール完了です
各項目の説明、設定画面
『Search Regex』を使用するには、WordPress管理画面の左メニューから[ツール] > [Search Regex]と進みます。
下記のような『Search Regex』の検索設定画面が表示されます。
各項目についての簡単な解説は下記の通り。
プリセット | ページ上部タブからJSONファイルをインポートしておくことで、検索・置換のひな形を選ぶ事ができます。プリセットのJSONファイルはSerch Regexプラグインの公式ページにていくつかサンプルが公開されています。 何のことかわからないという場合は当面『プリセットなし』のままで大丈夫です。 |
---|---|
検索 | 検索する文字列を入力します。 入力後に下部の『検索』ボタンを押すことで、置換をせずに検索結果を見ることができます。 |
検索フラグ | 検索時の条件について、下記設定が可能です。
『正規表現』については具体例を後述します。 |
置換 | 検索した文字列に対して、置換したい文字列を入力します。 また、右側のプルダウンで
|
入力元 | 検索・置換の対象を『投稿』『固定ページ』など指定することができます。追加したカスタム投稿や、プラグインで追加された要素なども対象にする事ができます。
また入力元の設定として
の選択も可能。 |
結果表示数 | 検索結果を1ページごとに何件表示するかを選択することができます。 25件から2000件まで選べます。 |
Search Regexプラグイン使用例
それでは実際に『Search Regex』を使っての置換をいくつかの例と共に紹介します。まずは下記のような投稿ページの文字の一部を置換してみます。
この本文に記載されている……
- 今日の最高気温は22度
- 今日の最低気温は13度
という箇所の『今日』の部分を『本日』に変更してみましょう。
WordPress管理画面のSerch Regex画面に推移し、『検索』欄に抽出した文字列を入力し、続いて『置換』の入力欄に変換したい文字を入力します。
- 検索欄: 今日
- 置換欄: 本日
とします。今回は投稿の修正だけにしたいため、『入力元』で『投稿』だけを選択します。
ここで一度『検索』を実行 (この時点では実際には置換されません)。すると、ページの下部に検索結果が表示されます。
この時、置換欄に入力した文字列が適用されて表示されるので、意図した置換内容と相違ないか、よく確認しておきましょう。問題がなければ『すべて置換』を実行すると、実際に文字列の置き換えが適用されます。
進行状況を示すインジケーターが表示され、置換が実行されます。このインジケーターの進行具合は、少々いい加減な気がしますが)。
『完了』と表示されれば、置換は完了。
実際の投稿ページを確認すれば、『今日』の文字列が『本日』に置換されているのが確認できます。
なお、上記例は1記事しか投稿されていないWordPressを例に実行しましたが、実際に運用していて多数の投稿がある場合は『今日』と記載された箇所は、すべて『本日』に置き換わってしまいます。
例えば、『先日久しぶりに、山本今日子(やまもと きょうこ)さんとお会いして……』 といった文章も『先日久しぶりに、山本本日子(やまもと きょうこ)さんとお会いして……』という風に変わってしまいますので、検索文字列の設定や、置換前の検索結果の確認は慎重に行いましょう。
『Search Regex』では投稿の編集と異なり、DBに記録されているデータを直接検索し、変更を適用するため、置換結果を一括で元に戻す(アンドゥ)機能はありません。一度置換を実行してしまったら、今度は逆の方法で検索・置換をする必要がありますので、実行にあたっては慎重におこないましょう。
より厳密な検索方法、正規表現を用いた置換
上記のような意図しない置換を実行してしまわないためのひとつの対策として、検索語句を前後を含めて指定すると良いでしょう。前述の例であれば検索語句は『今日』だけではなく『今日の最高気温は』とし、置換する語句も『本日の最高気温は』とすれば、『山本今日子』さんに関する記述まで置換されてしまう事は避けられます。
また『Search Regex』では、検索フラグで『正規表現』を選択することで、より柔軟な検索・置換を行う事ができます。とはいえ、HTMLや正規表現の記述についてある程度理解している必要があります。
先に置換した投稿を基に、今度は正規表現使って行う検索・置換について解説していきます。
この投稿の場合……
- 本日の最高気温は22度
- 本日の最低気温は13度
という箇所は、リスト形式で記載しているので、 htmlタグでは<li>というタグでマークアップされており、コードとしては下記のようになっています。
<ul>
<li>本日の最高気温は22度</li>
<li>本日の最低気温は13度</li>
</ul>
今回はこの<li>要素にCSSを適用し、2つの文章を赤文字にしてみます。
検索欄に下記のようなhtmlと正規表現をふくめた文字列を入力し……
<li>本日の(.*?)</li>
検索フラグ欄の『正規表現』にチェックを入れてまずは『検索』を実行します。
これで、<li></li>要素にかこまれた、『本日の~』ではじまる文字列だけを検索する事ができるので、置換欄に下記のようなコードを入力します。
<li style="color:red;">本日の$1</li>
以上で検索を実行すると、下記のように<li></li>要素でかこまれた、『本日の』で始まる箇所のみが抽出されます。
検索結果の内容に問題がなければ『すべて置換』ボタンをクリックすることで、文字の置換が完了します。
すると、テキストにCSSが適用され、2つの文章が赤文字になっている事が分かります。
上記例で用いた正規表現の解説
上記の例で用いた、正規表現について少しだけ解説しておきます。
まず検索に入力した『(.*?)』という箇所は、
- .(ドット) ……任意の1文字
- *(アスタリスク)……直前の文字を0回以上の繰り返す
- ?(疑問符)……前の繰り返し指定を最短一致とする
- ()(かっこ)……グループ化
という構成になっていて、これにより『本日は』に続く『文字の種類・数量を問わない文字列』が選択対象となります。なお、『?(疑問符)』を除外すると、ソースコード上で1行で記述されている場合などに抽出もれが発生する場合があります。
『Search Regex』プラグインの利用にあたっての注意点
非常に便利なプラグインですが、注意点として一度置換してしまったものをやり直し(アンドゥ)することができません。
2021年3月時点で最新の『Search Regex』を使って更新をした場合にはWordPressのリビジョンに記録が残ります(※)が、それでも大規模な一括置換を行う前は念入りに確認し、場合によってはDBのバックアップを取るなどしてから作業を行う事をおすすめします。
※リビジョンの日付時刻は変な形で残ります(下記画像参照)。
とはいえ、リビジョンに記録されるので、ある程度元に戻せる方法があるのは助かるのですが。
記事編集に便利な正規表現検索・置換サンプル
htmlの最適化、編集・校正を効率的に行う事ができそうな正規表現例を掲載しておきます。修正・提案や、もっと便利な正規表現あるよ!……という場合当記事のコメント欄(下部)からお教えいただけば、積極的に追記いたします。
※なお、当サンプルを使用した、いかなるトラブルについても責を負いません。あらかじめバックアップをとったうえで、慎重に確認の上利用を検討してください。
用途 | 正規表現 サンプル |
補足 |
---|---|---|
見出し<h2></h2>の中にある<strong></strong>要素を除去 |
|
見出し要素内に強調タグは不要ですが、原稿を編集時にまれに発生してしまう。 <h3></h3>、<h4></h4>などへも応用できる |
<strong></strong>要素の中に無駄にある<span></span>を除去 |
|
WISIWYGエディタ/ビジュアルエディタで文字へ色や装飾をしていると発生しがちな <strong><span style=”color:#990000;”>●●</span></strong> といったもの <strong style=”color:#990000;”>●●</strong> へと簡略化する。 もちろん、style属性の内容はそのままstrong要素へ引き継がれるよ |
<td>要素に付与されたstyleの”height:●●;” だけを除去 |
|
TinyMCE(Classicブロック)のtable機能はtd要素へ勝手にwidth、heightを設定してくれるんですよね。やめてほしい。 |
テキストの『!』の後に、スペースが無く、別の文字がある場合は半角スペースを挿入する ただし、インラインcssの”!important”やa要素のURLは除く |
|
編集の世界では、感嘆符『!』の後には、スペースを入れるのだそう。 面倒な事を引き継いでいくのが好きな人、多いですよね(スタッフMの個人的見解です)。 |
テキストの『更に』を『さらに』に直す(ひらく)。 ただし、『変更に』など別の単語は除外したい |
|
文字の閉じ/開きも厳しいルールがある場合が多いですよね。 例では「殊更に」、「変更に」、は除外しています。ほかにもあれば”|”でつないでください。 「読めればいいと思うんですけどね」……って言ったら、「じゃあhtmlタグが全部大文字でも良い?」って返されて、反論できませんでした(スタッフM)。 |
一つの段落の中で、『たり、』が2回でていないケースを抽出 |
|
この場合、置換ではなく検索しておいて、個別に直した方がよさそうです。 TARI TARIっていいアニメだったな(M)。 |
まとめと、総合評価
以上、検索・置換でWordPressで構築したWebサイトの記述変更を効率化できるプラグイン『Search Regex』の設定と、利用方法について解説しました。
WordPressで構築されたWebサイトを管理・更新するには非常に便利で強力なプラグインでですが、使い方を間違えると、逆にその修正の手間がかかってしまう場合もあります。
正規表現の記述に慣れないうちは、むりに正規表現を使おうとせず、検索語をなるべく厳密な形で記載することで対応していくのが良いでしょう。
余談ですが、正規表現を表す単語『Regex』は『Regular Expression』の略語。その読み方は、冒頭に記した『リジェックス』の他、『レゲックス』『レジェックス』『リージェックス』など諸説あるようです。Gifの読み方や、PNGの読み方……などなど、この手の話題にはほとんど結論が出ない場合が多いので、好きな呼び方でよいのではないでしょうか。
総合評価
インストールのしやすさ | ★★★★★(5) プラグインディレクトリから簡単にインストール・有効化できる。 |
設定の柔軟性 | ★★★★(4.0) 必要な初期設定も特になく、インストール後すぐに使用できる。 正規表現やプリセットの使い方は、慣れたユーザーであれば。 |
機能 | ★★★★(4.0) Ver2.0からは最新のWordPressにも対応し、日本語にも対応。 余計な機能がなくシンプルで使いやすい。 |
価格 | ★★★★★(5) 全ての機能を無料で使用できるが、設定画面から開発者に支援(寄付)することも可能。 |
総合評価 | ★★★★☆(4.5) サイトのリニューアルや変更を大幅に効率化してくれる便利なプラグイン。 検索機能としても利用できるので、編集作業、誤字脱字チェックにも一役買う。 サイトの共通部分を一括で変更したい時には是非とも活用したい。 |