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以降あたりから色々なエラー、不具合が発生しているようです。
Wordpressの管理画面からインストールすることは出来るものの、最終更新が1年前となっており、Wordpress5.9.3では動作検証が済んでいないのが現状です。
一応PHP7.x系だと動くのですが、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向けに開発されているベータ版ですので、これを丸々ダウンロードしましょう。
ZIP形式で圧縮されているので、このままWordpressにアップロードするだけで有効化できるようになっています。
WP管理画面からプラグインを有効化する
プラグインの本体をダウンロードしたら、続いてWordpressの管理画面にログインして有効化してみます。
プラグインの新規追加から「プラグインのアップロード」に進みます。
先ほど入手したZIPファイルを選択した後、今すぐインストールを押します。
PHP8.0環境でも特にエラーが発生せずにインストールできました。
問題だったプラグインの有効化でもParse errorは出ませんでした。
プラグインの処理画面にも何のエラーも発生していない様子!
これはWordpress5.9.3&PHP8.0の環境でもベータ版を使えばいけそうな予感…
「すべて置換」ボタンが押せない
最後に実際に置換処理を行って動作確認!
と思ったところ、問題が発生しました。
検索処理は問題なかったのですが「すべて置換」というボタンが押せません…
Wordpressのバージョンが悪いのか、PHPのバージョンが悪いのか分からないので、PHP7.4のサーバーでテストしてみます。
するとPHP7.4だとWordpress5.9.3でも動作することが確認できました。
1年前に更新が止まっている「Search Regex」は現状、動いたり、動かなかったりと不安定な状態と言えそうです…
Search Regexの動作確認表
今回実際にテストして得られた結果をまとめておきます。
PHPのVer. | WPのVer. | サーバー | 動作 |
8.0.8 | 5.9.3 | Apache | ✕ |
8.0.6 | 5.7.2 | 不明 | ○(報告) |
7.4.25 | 5.9.3 | Apache | ○ |
ベータ版の「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」の使い方。Search Regexの代替プラグインとしてもお勧め!
続きを見る
まとめ
Search Regexは更新が止まっており、PHPのバージョンやWordpressのバージョンによっては動作しないという事が増えてきています。
データベースの一括置換という重要な処理にエラーがつきものというのは少々厄介ですので、今後置換作業が必要な時はBetter Search Replaceなどの別のプラグインを使えば安心かと思います。