WordPressの記事本文やタイトルの一括置換ができるプラグイン Search Regex

2cap

Search Regexは、WordPressの記事本文やタイトルの一括置換ができるプラグインです。

正規表現を使った置換もできるので、とても便利です。

また、デフォルトではタイトルが検索できないバグがあるので、修正方法も紹介します。

目次

Search Regexの使い方

プラグインをインストールしたら、「ツール」 > 「Search Regex」に進みます。

2cap2

「Source」で検索対象を選択します。以下から選択することができます。

  • Comment author コメント投稿者の名前
  • Comment author email コメント投稿者のメールアドレス
  • Comment author URL コメント投稿者のURLを
  • Comment content コメント本文
  • Post content: 記事本文
  • Post excerpt: 記事の抜粋
  • Post meta value: 記事のメタ情報
  • Post title: 記事のタイトル
  • Post URL: 記事のURL

「Search pattern」に検索文字列、「Replace pattern」に置換後の文字列を入力します。

「Regex」にチェックをつけると、正規表現を使うことができます。

「Search」ボタンで検索、「Replace」ボタンで置換後のプレビュー、「Replace & Save」ボタンで置換の実行ができます。

2cap3

「Replace」ボタンを押した際の、置換後のプレビュー画面です。内容を確認してから置換を実行できるので、安心して使うことができます。

2cap4

Search Regexでタイトルが検索できないバグの修正方法

Search Regexは便利なプラグインですが、デフォルトではタイトルが検索できないというバグがあります。

プラグインのソースコードを修正することで、タイトルが検索できるようになります。

プラグイン一覧から、Search Regexの「編集」へ進みます。

2cap5

Search Regexのプラグインファイル一覧から「search-regex/searches/post_title.php」に進みます。

2cap6

ソースコードの5行目にある以下のソースコードを、

$posts = $wpdb->get_results ($wpdb->prepare( "SELECT ID, post_title FROM {$wpdb->posts} WHERE post_status != 'inherit' ORDER BY ID $orderby LIMIT %d,%d", $offset,$limit ) );

以下に変更します。

$posts = $wpdb->get_results ($wpdb->prepare( "SELECT ID, post_content, post_title FROM {$wpdb->posts} WHERE post_status != 'inherit' ORDER BY ID $orderby" ) );
if ( $limit > 0 )
$sql .= $wpdb->prepare( " LIMIT %d,%d", $offset, $limit );

これで、記事のタイトルも検索できるようになります。

ソースコードの修正はこの記事を参考にさせていただきました。
Search Regexのバグ修正でタイトルを検索できるようにする。WordPressのタイトルを一括で置換する | 最適化コンサルタント-Oji