WordPress の記事内容を一括で置換できるプラグイン Search Regex

2016/07/11

SSL 化に伴い内部リンクを http から https へ変更したい。HTML タグを一括置換したい。そんな時に、過去の全ての投稿を対象に検索を行って、一括置換が行える WordPress のプラグインがあります。

その名も「Search Regex」です。

このプラグインは、正規表現による置換処理が行えるので、例えば h3 タグで記述した部分を h2 タグに全て置き換えることも出来るのです。

投稿を1つずつ開いて編集するのは手間な上、目視では置換漏れが生じる可能性もあります。確実に漏れなく変換をかけるためには、プラグインの力を借りるのが一番手っ取り早いです。

では実際に使い方を見ていきましょう。


※ プラグインのインストール、および有効化の手順は割愛します。

Search Regex の項目説明

以下、Ver. 1.4.16 の画面となります。

プラグインを有効化にするとメニューの [ツール] → [Search Regex] が追加されるので、まずはそちらからアクセスします。

wordpress-plug-in-search-regex01

Search Regex を開くと次のような画面へ遷移します。上から置換する処理対象、一括処理時の処理上限数、検索結果の並び順、検索パターン、置換時の変換パターン、そして最下部のチェックボックスは正規表現におけるオプションになります。

wordpress-plug-in-search-regex02

なお、上部の説明欄を日本語で訳すと、次のように記されています。

置換処理は「Replace & Save」ボタンをクリックした時に行われ、データベースへ保存されます。「Search」「Replace」ボタンをクリックした場合は、置換処理候補のプレビューを閲覧できます。

置換処理によって損害を被っても責任は取れません。変更する前にバックアップを取っておくことを強くおすすめします。

つまり WordPress のバージョンアップを行う時のように、データベースのバックアップをちゃんと取っておきましょうと言うことです。

置換処理が行える対象

プルダウンからの選択式となります。投稿内容、コメントの各項目単位で処理を行うことができます。以下の9項目より処理対象を選択します。初期値は「Post content」が選択されています。

  • Comment author ……… コメント作成者
  • Comment author email … コメント作成者メールアドレス
  • Comment author URL … コメント作成者 URL
  • Comment content …… コメント内容
  • Post content ………… 投稿内容
  • Post excerpt ………… 投稿抜粋
  • Post meta value …… 投稿カスタムフィールド
  • Post title …………… 投稿タイトル
  • Post URL …………… 投稿パーマリンク

置換対象は WordPress のデータベースに格納されている情報に限ります。また投稿記事に関しては、固定ページも対象になります。

テーマやプラグインのデータは対象外です。これらはデータベースの情報ではなく、ファイルとして存在しているものなので、必要に応じて直接更新をかけてください。

処理上限数を設定しておこう

検索条件によっては、処理対象数が膨大になります。場合によって処理対象が500件を超えることもあり、変換前のチェックが大変になります。

チェックせずにいきない変換することも可能ですが、対象外としたいものを間違って変換してしまうと戻すのも一苦労です。もし処理対象件数が多かった場合に、上限値を設定しするようにしましょう。

No Limit(上限なし)、10、25、50、100 から選択できます。

検索結果の並び順は ID の順番

例えば投稿内容を置換しようと「Post content」を選択し検索したとします。Ascending(昇順)を選択していれば投稿記事が古い順で表示され、Descending(降順)を選択していれば新しい順に出力されます。

正規表現による検索ができる

Regex のチェックボックスを ON にすると、正規表現を用いた検索および置換を行うことができます。その横に更にチェックボックスが3つ用意されていますが、それぞれ次のような意味があります。

  • case-insensitive …… アルファベットの大文字・小文字を区別しない
  • multi-line …………… マルチラインモード
  • dot-all ……………… ドットオールモード

マルチラインモード(複数行モード)とは、正規表現時に用いるハット記号 (^) とドルマーク ($) が、行単位で先頭と末尾を判定するモードです。検索対象全体に対し(改行含め)、先頭と末尾を判定するのがシングルラインモードとなります。

またドットオール (DOTALL) モードは、ピリオド (.) で改行をマッチさせるためのモードです。

正規表現を知っていても、これらのモードを使いこなすのは難しいです。これらのモードを選択しなくても事足りるので、用法がよく分からない方は、むやみにチェックを入れないよう、お気をつけください。

Search Regex で置換処理を行う

それでは実際に置換処理を行っていきましょう。

例として次のように、アドレスから http を取り除く置換を行います。こちら、URL を SSL 化するための下準備として、よく変換されるパターンです。(https へ置換しない点がポイントです。)

これで画像の img タグや、リンクのアンカータグ内の URL が一括で置換されます。

wordpress-plug-in-search-regex03

Search ボタンにより検索対象を表示

検索条件を入力したら、その対象が何件あるのか、Search ボタンをクリックして内容を確認しましょう。もし対象の件数が多いようであれば、処理上限数を設定すると良いです。

wordpress-plug-in-search-regex04

右肩にある view と edit はそれぞれリンクになっています。前者は該当のページを表示します。後者は該当のページの編集画面を開きます。

この時リンクは新しいタブで開かれないので、もし処理結果をそのまま残したいのであれば、新たらしいタブで開くようにしてください。(右クリックから新規タブで開く、もしくはマウスのセンタークリック等で開く。)

Replace ボタンにより置換処理プレビューを表示

実際に置換処理を行うとどのようになるのか、Replace ボタンをクリックすることで事前にチェックできます。この段階では、まだデータベースへの反映は行われません。

wordpress-plug-in-search-regex05

表示した内容を反映して問題ないのであれば、次の処理にて置換内容を確定します。

Replace & Save ボタンにより置換処理を実行

このボタンをクリックすることで、置換処理がデータベースへ反映されます。データベースへ反映してしまうと元に戻すことはできないため、必ず上記手順での確認を行ってから確定しましょう。

処理の実行結果は、処理件数のみが表示されます。(変換前のデータは無くなってしまうため、このような仕様になっていると思われます。)

wordpress-plug-in-search-regex06

また Search Regex が変換を行うのは、Source(処理対象)で指定した項目のみとなります。記事のタイトルや内容の置換処理を行っても、該当の投稿の最終更新日は更新されないので、予め承知の上で処理を行ってください。

正規表現を使えばタグの一括置換が可能に

特定のタグで囲まれた内容を、別のタグに置き換えたい場合、開始タグと終了タグがあるため、通常の置換では正しく置換できないケースがあります。

そんな時は正規表現を使うことで、開始タグと終了タグを一気に置換することができます。次の例をご覧ください。

wordpress-plug-in-search-regex07

タグ <p class="list-title b"></p> で囲ったデータを <h3></h3> で囲うように変換をかけたものです。正規表現を用いているので、下部の Regex へチェックを入れています。それぞれ条件として、次のように入力しています。

Search Pattern

|<p class="list-title b">(.*)</p>|

条件の前後に縦線 (|) を入力しておくのがポイントです。タグの中で囲まれた文字列は (.*) にて表現します。

Replace Pattern

<h3>$1</h3>

置換後、タグの中で囲まれた文字列は $1 と記載することで、そのまま利用することができます。検索条件の記述方法によっては $2 や $3 が登場しますが、話がややこしくなってしまうので、ここでの説明は割愛させていただきます。まずはこのような条件において、$1 で取得することを覚えておきましょう。

実際に置換処理を実施した結果は次の通りです。開始タグと終了タグだけが置換対象となっていることがわかります。

wordpress-plug-in-search-regex08

これで WordPress 内の記事内容の置換もバッチリですね。

このブログの運営者

気力・体力勝負なシステム業界のエンジニアを経て、個人事業主として独立。Web サイト運営、動画制作など活動の場を広げています。目指すところへの道のりは険しいですが、自分が自分らしくあるために、一歩ずつ進んでいきます!

このブログでは、困ってたどり着いた人に、分かりやすく答えを提供できるように心掛けています。更新情報は、Twitter や Facebook ページを参照ください。よろしければフォローお待ちしています。

Facebook ページ NJ-CLUCKER
このブログが役に立ったら
「いいね!」お願いします

最近のエントリー

プラグインを使わず WordPress の投稿ページで PHP の外部ファイルを呼び出す方法

Feedly ボタンが機能していない?!正しい URL の情報に変更する方法

Twitter で過去のツイートを閲覧・削除する方法

赤ちゃんが泣き止む動画「ふかふかかふかのうた」は生後3ヶ月の赤ちゃんにも効果抜群だった!

これで迷わない!東京ディズニーランドの喫煙所マップ一覧【写真付き】

iTunes でアートワークが反映されないのは WAV 形式が原因!AAC に変換すれば反映される!

【徹底比較】WiMAX 2+ ギガ放題プランの最安値はどこ?【2017年10月版】

おすすめのモバイルルーター・ポケット WiFi を比較!選ぶポイントは利用目的に合わせること!

公共料金の支払いはクレジットカードと口座振替のどっちがお得?

iPhone 8・8 Plus は 7・7 Plus のスマホケースをそのまま使えるのか?