WordPress

Search Regexが置換できない!?一致項目を削除はやばい!

WordPress

WordPressのプラグイン、Search Regexの覚書です。

(追記)久しぶりに使ったらSearch Regex結構、怖いツールになっていますね。。

search regexの置換で削除

該当の文字列を削除する場合、次のように検索します。

  1. ツール > Search Regex
  2. 検索にキーワードを入れて[検索]
  3. 検索されたものが正しいか見ます。
  4. 操作は[全体の文字列を置換]のまま
  5. [置換用の文字列を入力]は何も入力しない
  6. セレクトボックスは[ 単一業 ] から[ 削除]
  7. [すべて置換]を押す

Search Regexの一致項目を削除はやばい!

[全体の文字列を置換]から[一致項目を削除]にできますが、この機能は文字列の削除ではありません。

この機能はDBから記事を丸ごと削除しますね。100件ひっかけってまるまる実行したら記事が100記事消えるということです。一瞬、一致した文字列を削除するような和訳に見えますが、違います。。怖いですね。

万が一、消してしまったらバックアッププラグインで復元するしかありません。エックスサーバーなら自動バックアップ機能もあります。

search regexの置換で削除できない

Something went wrong
Unexpected token ‘<‘, “<!DOCTYPE “… is not valid JSON (SyntaxError)

WordPress returned an unexpected message. This could be a PHP error from another plugin, or data inserted by your theme.

REST API:
良好
次はどうしますか?
キャッシュのソフトウェア、特に Cloudflare は、間違ったものをキャッシュする可能性があります。一度すべてのキャッシュを削除してみてください。
一時的に他のプラグインを無効にしてください ! これにより、いくつかの問題が修正されるはずです。
WordPress 5.2以降を使用している場合は、サイトヘルスを確認して問題を解決してください。
Debug Information

置換したらエラーが発生しました。

ちなみに、置換は完了していましたが、エラーが発生したようです。

個人的に原因はWP Fastest Cacheというプラグインでした。外したら2回目の置換からエラーがでなくなりました。なお[進行状況]は0%で固まったように見えることもありますが、一気に進む場合もあります。少し気長に待つといいかもです。

スポンサーリンク

正規表現の最短マッチでurl置換(Search Regexでスラッシュをひっかける)

urlにカテゴリ名が挟まっていたのですが、任意のカテゴリ名を正規表現の置換で除去しました。覚書として残しておきます。

正規表現で次の置換を行います。

 http://aaa.com/tokyo/100
 http://aaa.com/kanagawa/101

↓上記を下記のようにしたいわけですね。

 http://bbb.com/100
 http://bbb.com/101

tokyoやkanagawaなどの任意の文字列をとる必要があるため正規表現が必要になります。検索するのにこれ!

 http://aaa.com/(.*?)\/

具体的に箇条書きで解説します。

  • まず基本の.*
  • . は任意の文字
  • * は繰り返し回数。この場合は0回以上。
  • バックスラッシュを使って任意の特殊文字をエスケープし、それを文字通り解釈するようにします。
  • ちなみに半角のバックスラッシュ”\”は、通常の日本語フォントでは半角の”¥”です。
  • バックスラッシュの半角の打ち方を調べる前に、¥でいいことを知っていればいいでしょう。
  • 括弧はなくてもいけますが、一応つけています。
  • はてなは最短マッチです。はてながないとアドレスが長い場合、最後尾のスラッシュを取得してしまいます。
 http://aaa.com/tokyo/100/hoge/hoge/

最短のスラッシュを取得するため最短マッチです。秀丸などのテキストエディタで置換する場合は、この正規表現でOKです。

WordPressのプラグイン Search Regexの正規表現

WordPressのプラグイン、Search Regexの場合、|を入れます。

 |http://aaa.com/(.*?)\/|

あと、1番左のチェックボックスを有効にしないと正規表現になりません。管理画面をみればすぐわかります。

 http://bbb.com/head

後ほど、置換したアドレスをさらに修正したかったため、目印として個人的にheadという頭文字をつけました。

記事のエクスポートとインポートによりブログ移転をしましたが、内部リンクはすべてリンク切れしてしまうのですよね。その際にこのような正規表現の置換が便利なわけですね。

コメント

タイトルとURLをコピーしました