サイトのPHPのバージョンを7.4から8.0にアップデートしたタイミングで管理画面にログインできなくなくなるというトラブルに遭遇しました。
調査の結果、原因は「Search Regex」プラグインでした。
この記事ではWordPressにログインすることなく「Search Regex」プラグインを無効に、管理画面にログインできるようになる方法を解説します。
PHP8.0に変更するとワードプレスに重大なエラー
PHPのバージョンを上げるには勇気が要るのですが、いつまでの上げないわけにも行かないので、このサイトでPHP7.4からPHP8.0へアップグレードしてみました。
結果は管理画面にログインできなくなりました。
WordPressでエラーが発生すると管理者として登録してあるメールアドレスにメールが送信されてきます。
それを確認すると
WordPress 5.2から、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が追加されました。
今回の場合、WordPress がプラグイン Search Regex でエラーを捉えました。
この問題を解決しようとする際、以下の情報を聞かれるかもしれません。
WordPress バーション5.8.1
現在のテーマ: XXXXXX (バージョン 3.0)
現在のプラグイン: Search Regex (バージョン 2.4.1)
PHP バージョン8.0.8
エラー詳細
===============
エラータイプ E_PARSE が /XXX/wp-content/plugins/search-regex/models/search.php ファイルの 322 行目で発生しました。 エラーメッセージ: syntax error, unexpected token “::”, expecting “(”
というエラーが出ていました。
ということで、PHP8.0でエラーになっているのは「Search Regex」プラグインのようです。
Search Regexプラグインの削除
記事の内容の検索や置換などで便利なプラグインなのですが、エラーになるのはまずいので一旦削除することにします。
今のままではWordPress管理画面にログインできないので、一旦、レンタルサーバー上で設定したPHP8.0をPHP7.4に戻します。
10分ほどすると変更が反映され、無事WordPressにログインできました。
残念ですがここでSearch Regexプラグインは一旦無効化したあと、削除しました。
で、再度レンタルサーバーのPHP7.4をPHP8.0へバージョンアップ。
今度は無事ログインできました。
PHPのバージョンを戻せない場合
何らかの都合でPHPのバージョンを戻せない方は、以下の方法でプラグインを無効にできます。
- STEP.1FTP接続するレンタルサーバーのツール等でFTPでサーバーへログインする
- STEP.2WordPressをインストールフォルダー以下にあるwp-content/pluginsへ移動する
- STEP.3フォルダー名変更 or 削除移動先にあるsearch-regexフォルダーの名前を変更するか、フォルダーを削除する
これで、再度ログインするとSearch Regexプラグインが無いものとして動作するので、ログインが可能になります。
まとめ
今回はPHP8.0でWordPress管理画面にログインできなくなった原因は「Search Regex」プラグインでした。
同じトラブルに見舞われた場合は一旦FTPツールなどで「Search Regex」プラグインのフォルダー名を変えることによって、プラグインが無効になり、無事、管理画面にログインできるようになります。
例えエラーになったとしても対策方法はあるので慌てず対応するようにしましょう。