WordPressの記事内コンテンツを一括置換できる「Search Regex」

WordPressの記事内コンテンツを一括置換できるプラグイン「Search Regex」の紹介です。

個人的には主にURLの置換で使うことが多いかと思います。

はにわまん
頻繁には使いませんが、知っておくと役立つ日はくるかと思います。

Search Regexのインストール

プラグイン → 新規追加 → キーワード「Search Regex」

「有効化」しておきます。

Search Regexの使い方

ツール → Search Regex を開きます。

3つのボタンがあります。それぞれ以下のような意味になります。

  • Search ・・・ 該当するキーワードが存在するかチェック
  • Replace ・・・ 該当するキーワードがどのように置き換わるかチェック(保存はされない)
  • Replace & Save ・・・ 該当するキーワードを置き換えて一括で保存

置換する流れとしては、「Search」でちゃんとヒットするか確認して、「Replace」でどのように置き換わるか確認(ちゃんと意図通りに置換できそうか確認)して、問題なさそうなら「Replace & Save」で置換 & 保存するようなイメージです。

URLをhttpからhttpsに変更

httpのサイトをhttpsに置換する時によく使われたりするので、この実例で見ていきましょう。

それぞれの入力項目は以下のようになります。

Source どのコンテンツを置換の対象にするか。タイトルなども選べますが、基本的には投稿コンテンツ(Post content)だと思います。
Search pattern 置換前の文字列(正規表現もあり)
Replace pattern 置換後の文字列(正規表現もあり)
Regex 正規表現を使うかどうか

「Search」ボタンの挙動

した記事の箇所が一覧で表示されます。

「Replace」ボタンの挙動

「Search pattern」にマッチした記事の箇所と、そこを「Replace pattern」で入力した値に置換したときにどのように変更されるかが並んで表示されます。
※ 保存はまだされていない。

「Replace & Save」の挙動

実際に「Search pattern」にマッチした箇所が、「Replace pattern」に書き換えられて一括で保存されます。

有無を言わさず保存されるので、まずは「Replace」ボタンでどのように置換されるか、ちゃんと確認しておいた方がいいかと思います。

正規表現の使い方

「Regex」の右側にチェックを入れることで、正規表現を使うことができます。

例として、h3の見出しをh4に変更する、みたいな処理を行っていきます。書き方としては以下のようになるかと思います。

「Search pattern」にはマッチさせる対象の正規表現を作ります。JavaScriptやPHPで書く時と同様に前後に「正規表現使ってますよ」の区切り文字?みたいなものが必要です。カッコにした箇所は置換後に変数として使えるようになる箇所です。

「Search pattern」 → |<h3>(.*?)</h3>|

「Replace pattern」には、文字列と「Search pattern」から受け取る変数で構成される感じです。(.*?)の箇所は$1として受け取ることができます。
※ カッコが複数ある場合は、カッコの出現順に$○の番号が決まるイメージです。

「Replace pattern」 → <h4>$1</h4>

Replaceボタンを教えてみましょう。いい感じで意図通り置換できそうです。

カスタム投稿タイプにも適応させたい場合

標準の仕組みとしてはないので、、プラグインを直接編集する必要があります。対象のファイルは、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;

修正するのは、IN ('post','page')のカッコの中で、ここに任意のカスタム投稿タイプ名を追加してあげればOKです。例えば「news」という投稿タイプを追加するなら、以下のようになります。

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

ウィジェットやメニューは適応されない

「Search Regex」が置換の対象とするのは、投稿コンテンツが基本となります。

ウィジェットやメニューには適応されないので、こちらにも書き換え対象の文字がある場合はチェックを忘れないようにしなければいけません。

Search Regexの使いどころ

Search Regexの具体的な使い所ですが、大きくは2パターンあるかと思います。

https化

この記事でも置換の具体例として紹介しましたが、https化の流れがあって一躍有名になったのが「Search Regex」でした。

特に投稿数の多いサイトだとhttp → httpsっていう更新を全記事に対して行うのが手間すぎるので、こういうプラグインを使って一括で置換させることで楽ができます。

https化の流れは以下の記事で紹介しています。

WordPressサイトをSSL(https化)する手順と確認ポイント

ドメイン変更

ドメインの変更を伴う引っ越しなどでも使われることが多いです。投稿コンテンツのインポート → 「Search Regex」でURLの置換 みたいな感じですかね。

ただ、引っ越しにも使える「All-in-One WP Migration」プラグインもインポートするサイトのURLに応じて、いい感じでコンテンツ内のURLを置換してくれるので、こちらも検討してみるといいかもしれません。

WordPressのバックアップは「All-in-One WP Migration」でDBもテーマもオールOK!!

アナログなわたしは、「Search Regex」だとちゃんと見ながらできるので、とても安心できたりします笑

おわり


WordPressの記事内コンテンツを一括置換できる「Search Regex」の紹介でした。

個人的にURL系の変更で使うことが多いかと思います。こういった補助系のプラグインも使えるようになっていると、自分のサイト運営の効率やWordPress案件の効率も上がってくると思います。

頻繁に使われることはないプラグインですが、存在を知っておくと、必要になった時に楽ができるはずです!

このページが役に立ったら
いいね!お願いします

運営の励みになります...。

関連の記事