節約投資のススメ
search regex

Search Regexで全記事の文字列一括置換!正規表現を使えばhtmlタグも一発!


この記事を読むのに必要な時間の目安: 10分ぐらい

search regex

はい、今回の記事はwordpressのプラグイン系の記事です。このブログの読者層の人には全く必要ない記事だと思いますが備忘録で更新しております。twitterにもfacebookにも配信しておりませんので悪しからず。

実は今回、当ブログのテンプレートをWEBで話題の「Stinger5」に変更しようかと色々と試行錯誤しておりました。その理由はまた別途記事を書くことにしますが、僕はもうこのテンプレートを使って長いのでテンプレを変えてしまうと色々と問題が生じてくるわけです。特に文字列ですね。

というわけでWordPressの全記事を一括で置換してくれるようなプラグインは無いものだろうかと思って探していたらありました。それが「Search Regex」というプラグインです。正規表現も使えるという事でhtmlタグも置換自由ですよ。

ちなみに2014年10月14日とか15日とかに当ブログの画面が真っ白になったり、テンプレがコロコロ入れ替わっていたのはこのテストをしていたからです。

スポンサーリンク

Search Regexのインストールから使い方

プラグイン自体はWordPress管理画面から「プラグイン」→「新規追加」→「Search Regex」で検索してください。もしくは下記URLより直ダウンロード出来ます。

http://wordpress.org/plugins/search-regex/

基本的にはWordPressの管理画面からダウンロードすれば良いと思います。基本的な使い方に関しては下記、TATSUO IKURAさんのHPを見たほうが分かり良いと思うのでそちらをご参照ください。

Search Regexプラグイン(記事やコメント内容を一括置換) – WordPressプラグインの一覧

注意:このプラグインは最新更新日が2013年1月1日となっております。それ故作者によるWordPress最新バージョンに対する互換性チェックはされておりません。私はWordPress4.0にしてから使いましたが、私が行った置換の範囲では特に問題ありませんでした。

日本語化も出来ます

Search Regexは下記の様にデフォルトでは英語です。

search regex管理画面

一応、Search Regexは日本語化も出来ます。日本語化のリソースは下記サイトからダウンロード出来ます。

Search-Regex 日本語リソース配布

上記リンク先で日本語リソースが配布されていますので、それをダウンロードしてFTPソフトなどでプラグインフォルダの「Search Regex」フォルダの更に下の「locale」フォルダにリソースをぶち込めば日本語化されるようです。

上記方法を行っても日本語化されない場合は下記記事を参照して見てください。

Search Regex 日本語ファイル

ただ、そこまで覚える事も少ないのでわざわざ日本語化に時間を割くよりは英語のまま行った方が良いかなと思います。基本的には文字列を検索して置き換えるだけですから。

Search Regexの管理画面の詳しい解説も先ほど紹介したIKURAさんのブログに記載されています。

Search Regexプラグイン(記事やコメント内容を一括置換) – WordPressプラグインの一覧

タイトルが検索できない不具合に対応する方法

Search Regexではデータの処理源は以下のようになっています。

ソース元

それぞれの意味は以下のとおりです。

Comment author – コメントの名前
Comment author email – コメントのメールアドレス
Comment author URL – コメントのURL
Comment content – コメントの内容
Post content – 記事の本文
Post excerpt – 記事の抜粋
Post meta value – 記事のカスタムフィールド
Post title – 記事のタイトル
Post URL – 記事のURL

例えばここを「Post content」にしておくと「記事の本文」内にある文字列を検索して置換することが出来ます。僕はあまり必要性を感じませんが、「Post title」で実行すると何をやっても検索されないことが有るようです。その対処方法は下記記事を御覧ください。

Search Regex でタイトル内のキーワード置き換えができない場合の対処法

正規表現を使ってhtmlタグを置き換える

やっと僕の中での本題です。今回テンプレ変えようとして大変だなーと思ったのがhtmlタグの変換です。特にこのテンプレートとstinger5はhタグの使い方が違うんです。

具体的にはこのテンプレは記事タイトルがh2で記事本文内のhタグはh3から使い始めます。一方stinger5は記事タイトルがh1で記事本文はh2から始まります。そうすると、文法の構造上もなんか変な事になってSEO的にはあまりよろしく有りません。しかもhtmlタグは

<h3>テスト</h3>

って感じで閉じタグが必要です。htmlタグでも他と重複していない場合は正規表現を使わずに開始タグ⇒閉じタグを順番に置換すれば多少のタイムラグはあれど上手く置換されます。しかし閉じタグが重複している場合などは片側のタグを順番に変えてしまうととんでもないことになります。具体的には

①<span class="boldtxt"></span>
②<span class="colorRed boldtxt"></span>

①と②のように閉じタグが同じ場合にはなんか変な事になる可能性が有ります。表現の仕方が下手ですが、とにかく開始タグと閉じタグを一気に変換しないとヤバイ事になってしまう可能性が有るわけです。

それを解決してくれるのが正規表現です。Search Regexでは正規表現の使用が可能です。具体的にどうすれば良いのかと言うと

Search patternに以下のように入力します。

|<h3>(.*)</h3>|

Replace patternには以下のように入力します。

<h2>$1</h2>

search regexの管理画面では下記のような感じです。

正規表現の入力方法

正規表現を使う場合には上記画像赤枠の「Regex」にチェックを入れてください。で、SearchボタンもしくはReplaceボタンを押します。SearchはSearchパターンに入力した文字列を検索するためのボタン。Replaceボタンはもし置換するとしたらこんな感じになりますよ~ってのを教えてくれるボタンと考えてください。

試しにReplaceボタンを押してみると以下の様な感じでここが置換されますよ~ってのを教えてくれます。

replaceの結果

確認してもしこれで良ければ最後に「Search&Replace」ボタンを押します。本当ちゃんと確認して下さいね。後戻りは出来ませんよ・・・・。

なお、Search Regexはデータベースを直接触りにいくプラグインです。一度置換してしまうと元に戻せません。まぁSearch patternとReplace patternに入れていた文字を入れ替えてもっかいやれば済む話では有りますが、しっかりとバックアップをとってからやりましょう。

正規表現について

正規表現に関しては僕は全然分かっていません。htmlタグを変換するには上記で紹介した方法でhtmlタグの中身を変えれば対応可能だと思います。

正規表現に関しては下記サイトがわかりやすかったです。しっかりと理解すれば色々な事が出来るようになるんだろうな~と思います。

サルにもわかる正規表現入門

上記で紹介したもので言うとhtmlタグで「(.*)」を挟むことによって開始タグと閉じタグの間はどんな文字列でも良いということを表すそうです。もっと言うと文字列は「/*」だけで表せます。()で文字列をグループ化して$1へと変更されるようです。ちょっと僕もよく分かってないのでグダグダで申し訳無いですが・・・・。

というわけでこの記事も自分の備忘録でした。失礼しました!

参考:WordPressで全記事のタグを簡単に一括置換する方法! – ウェブソク
参考:WordPressプラグイン「Search Regex」。正規表現を使ってHTMLタグを置換する方法。

スポンサーリンク

見ておかないと損をするコンテンツ

  • dmmキャンペーン

    DMM FXのキャッシュバックキャンペーンで最大30,000円ゲット

  • NISAのまとめ

    NISA(ニーサ)口座開設キャンペーンのまとめ-口座開設だけで2千円は最低貰える

  • Amazonで節約

    【還元率2.3%】Amazonで商品を割安で買う方法を公開