Search Regexがエラーで使えない...PHP8.0でParse errorが出る![WPプラグイン]

Search Regexがエラーで使えない_eyecatch

Wordpressの置換プラグイン「Search Regex」をPHP8.0のサーバーで使おうとしたところ、有効化時にParse error: syntax errorが出ました。

どうやら「Search Regex」は執筆時現在(2022年4月)時点で約1年前から更新が止まっており、最新の環境には対応できていないみたいです。

今回、新しい環境に合わせたベータ版があるという事で試してみました。

結果:ベータ版で有効化は出来たのですが、置換ボタンが押せませんでした。

ポイント

今後は代替プラグインとして「Better Search Replace」を使うのが良いです。
Search Regexの代替プラグインについては当記事の後半で触れています。

Search RegexはPHP8.0で使えない?

今までは文字列などの置換プラグインと言えば「Search Regex」一択という感じでしたが、Wordpress5.2以降あたりから色々なエラー、不具合が発生しているようです。

Search Regexがエラーで使えない_001

Search Regexは更新が止まっている

Wordpressの管理画面からインストールすることは出来るものの、最終更新が1年前となっており、Wordpress5.9.3では動作検証が済んでいないのが現状です。

一応PHP7.x系だと動くのですが、PHP8.0のローカルサーバーでプラグインを使おうとしたところ、有効化時にParse errorが発生してしまい、有効化できませんでした。

Search Regexがエラーで使えない_002

PHP8.0環境では有効化時にParse errorが発生

重大なエラーを引き起こしたため、プラグインを有効化できませんでした。
Parse error: syntax error,unexpected token "::", expecting "(" in ~ search.php on line 322

そこで調べてみると「Search Regex」にはPHP8.0に向けて開発されているベータ版があるとのこと。“Wordpress5.7.2、PHP8.0.6で動作確認できたよ!”という報告も…

外部リンク

という事で今回ベータ版をインストールして有効化してみました。

ベータ版Search Regexで対処してみる

先ほどの参考先を辿っていったところ、ベータ版の「Search Regex」はプラグインの開発者であるJohn godley氏がGit Hubに公開しておられました。

外部リンク

【ベータ版Search RegexのDL先】
Release 3.0 beta 3 · johngodley/search-regex · GitHub

早速Git Hubにアクセスしてベータ版を入手します。
search-regex-3.0-beta-3.zip」というのがPHP8.0向けに開発されているベータ版ですので、これを丸々ダウンロードしましょう。

Search Regexがエラーで使えない_004

ダウンロードしたプラグイン本体

ZIP形式で圧縮されているので、このままWordpressにアップロードするだけで有効化できるようになっています。

WP管理画面からプラグインを有効化する

プラグインの本体をダウンロードしたら、続いてWordpressの管理画面にログインして有効化してみます。

Search Regexがエラーで使えない_005

プラグイン>新規追加>プラグインのアップロード

プラグインの新規追加から「プラグインのアップロード」に進みます。

Search Regexがエラーで使えない_006

プラグイン本体を選択し、今すぐインストールを押す

先ほど入手したZIPファイルを選択した後、今すぐインストールを押します。

Search Regexがエラーで使えない_007

search-regex-3.0-beta-3のインストール

PHP8.0環境でも特にエラーが発生せずにインストールできました。

Search Regexがエラーで使えない_008

プラグインの有効化も問題なし

問題だったプラグインの有効化でもParse errorは出ませんでした。

Search Regexがエラーで使えない_009

プラグインの置換処理画面も問題なし

プラグインの処理画面にも何のエラーも発生していない様子!
これはWordpress5.9.3&PHP8.0の環境でもベータ版を使えばいけそうな予感…

「すべて置換」ボタンが押せない

最後に実際に置換処理を行って動作確認!
と思ったところ、問題が発生しました。

Search Regexがエラーで使えない_010

「すべて置換」がグレーアウトしたままで押せない

検索処理は問題なかったのですが「すべて置換」というボタンが押せません…

Wordpressのバージョンが悪いのか、PHPのバージョンが悪いのか分からないので、PHP7.4のサーバーでテストしてみます。

Search Regexがエラーで使えない_011

PHP7系では「すべて置換」が問題なく押せる

するとPHP7.4だとWordpress5.9.3でも動作することが確認できました。

1年前に更新が止まっている「Search Regex」は現状、動いたり、動かなかったりと不安定な状態と言えそうです…

Search Regexの動作確認表

今回実際にテストして得られた結果をまとめておきます。

PHPのVer.WPのVer.サーバー動作
8.0.85.9.3Apache
8.0.65.7.2不明○(報告)
7.4.255.9.3Apache

ベータ版の「Search Regex」を使ってもPHP8.0.8では「すべて置換」ボタンを押すことが出来ませんでした…
ただしボタンが押せなかったのはあくまでもローカル環境です。
もしかしたら本番環境のサーバーでは動作するのかもしれません。

なんとも中途半端な記事になりましたが、今後はベータ版の「Search Regex」を使う方法よりも「Better Search Replace」という別のプラグインを使った方が良いです。

スポンサーリンク

代替プラグインはBetter Search Replace

Search Regexは人気&定番の置換プラグインで、数多くのサイトに紹介されていますが、新しい環境でエラーが多発しているようです。

そんな背景も影響してか、Search Regexの代替プラグインを探している方が増えているのですが、代替プラグインとして最有力なのが「Better Search Replace」という置換プラグインです。

正規表現での検索・置換を行うには有料版にアップグレードする必要がありますが、良く行うであろう置換作業はBetter Search Replaceで十分に対応できます。

今後を考えるとBetter Search Replaceを使うようにした方が良いでしょう。

プラグインの使い方はSearch Regexよりもシンプルですが、詳しい使い方については当サイトでもご紹介していますので、Search Regexにエラーが発生して使えない方は是非一度そちらもご確認いただければと思います。

Better Search Replaceの使い方_eyecatch
「Better Search Replace」の使い方。Search Regexの代替プラグインとしてもお勧め!

続きを見る



まとめ

Search Regexは更新が止まっており、PHPのバージョンやWordpressのバージョンによっては動作しないという事が増えてきています。

データベースの一括置換という重要な処理にエラーがつきものというのは少々厄介ですので、今後置換作業が必要な時はBetter Search Replaceなどの別のプラグインを使えば安心かと思います。

-WordPress
-

site-logo
ありがとうございました!
良かったらシェアしてネ・w・
当サイトはピンバックを受け付けます。
  • この記事を書いた人
ザキ

ザキ

X:@sologaku

プログラミングに興味があり情報系の大学を卒業。

新卒で社会人になるも数年で退職し今はフリーランスとして生きています。

少しでも誰かの役に立てれば...と思い、当サイトでIT関係のハウツーを発信しています。


ソロ学運営者:ザキの自己紹介

© 2020 sologaku