WordPressで「このサイトで重大なエラーが発生しました。対応手順については、サイト管理者のメール受信ボックスを確認してください。」と言われログインできない
自動アップデートなどが原因で、特に何も触ってないのに「このサイトで重大なエラーが発生しました。対応手順については、サイト管理者のメール受信ボックスを確認してください。」と言われて急に管理画面にログインできなくなることがある。
こんな画面が出たら要注意。でもフロントサイトは通常通り見えているし、解決方法はあるしそれほど難しくないので焦る必要はない。
手順1 wp-config.php にWP_DEBUG trueを入れる
まず、FTPソフトなどでダウンロードした wp-config.php に
define( 'WP_DEBUG', true );
を追記して上書きアップロードする。
記載場所は下記画像辺りに入れておけば良い。
これで、どの部分が問題で管理画面にログインできないのかが見えるようになる。
なお、セキュリティ的に、バグ箇所を確認した後で
define('WP_DEBUG', false);
に戻しておく方がいいだろう。
手順2 該当プラグインのフォルダをリネームして削除
バグ箇所が分かれば、その原因のプラグインをリネームして無効化することでトラブルはとりあえず解消される。
今回の例では Search Regex というプラグインが原因だった。
WordPress 5.9系と相性が悪いようだ。
FTPソフトで、wp-content/plugins/ の中から、該当のプラグインのフォルダごと名前を変更しよう。
今回の場合は「search-regex」なので「search-regex.bk」でも「search-regexmukou」でも何でもいい。
名前を変えてしまえばそれでOK。
これでログインできるはずだ。
手順3 該当プラグインの再インストールまたは削除
ログインした後、名前を変更して無効化したプラグインは動いていない。
使いたい場合は最新版を再インストールする。
もしくは不要であればアンインストールして、FTPソフトの方で名前を変更したプラグインの残骸をフォルダごと削除すればOK。
こちらのサイトを参考に復旧ができました。
誠にありがとうございます。
WordPress6.4.2に更新中にフリーズして当該エラーになりました。
ログを出力したところ、以下のエラーメッセージが出ました。
PHP Fatal error: Uncaught TypeError: call_user_func_array(): Argument #1 ($callback) must be a valid callback, function “wp_enqueue_emoji_styles” not found or invalid function name
・考えられる原因
関数が見つからない
プラグインのインストールが不完全
テーマの競合
カスタムコードの競合
関数名が正しくない
Wordpressのバージョンが古い
絵文字の関数をどこかに追加すれば解決するのでしょうか
・トラブルシューティング手順として、
Wordpressを更新
プラグインを無効にする
テーマを変更する
カスタムコードを確認する
とありますが、管理画面に入れませんので、どうしたらよいのか途方に暮れております。
とりあえずFTPでプラグインを無効にしてみます。
どうぞよろしくお願いいたします
エラーメッセージは、wp_enqueue_emoji_stylesという関数が見つからないか、無効な関数なのでエラーが発生しているようです。
まずはFTPソフトなどで、プラグイン全てを無効化してみてください。/wp-content/pluginsのpluginsのディレクトリ名を、例えば「plugins.bk」などに変更するだけでOKです(後でまたpluginsに戻すことで復旧できます)。
プラグインが原因でない場合は、プラグインを全て無効化してもログインできないので、テーマを無効化(デフォルト化)してください。方法はpluginsと同じで、/wp-content/themesの中の現在使用中のテーマのディレクトリ名を変更するだけでOKです。
ただし、現在使用中のテーマしかなく、デフォルトテーマ削除済みの場合は、まずWordPress公式から最新のWordPressをダウンロードし、解凍してから、FTPでwp-content/themesの中だけを上書きしてください。twentytwentythreeなどのデフォルトテーマがインストールできます。
プラグインでもテーマでもない場合はコアファイルの更新自体が不完全になっている場合が考えられますので、その場合は、手動でアップデート(公式からダウンロードして解凍したものをFTPで上書き)してみてください。
wp-content内のデータを削除しない限り、基本的には記事や写真等は消えませんので復旧可能なはずです。
<プラグインが原因だった場合>
plugins.bkにして正常化した場合は、プラグインが原因なので、pluginsに戻した上で、中の各プラグインの怪しいやつを1つずつ無効化して、具体的にどれが原因か突き止め、その後は
記事内の「手順2 該当プラグインのフォルダをリネームして削除」
以降の手順で復旧可能だと思います。
<テーマが原因だった場合>
デフォルトテーマの状態で管理画面よりWordPressアップデートを完了させてから、使用していたテーマを管理画面から再インストールしてください。
これで動けば問題ないはず(アップデート中の予期せぬエラー)ですが、またエラーになる場合は、そのテーマとWordPress最新版の互換性が無い事になりますので、(少なくとも一時的には)諦めて別テーマを使用する方が無難かと思います。
丁寧なご回答をありがとうございます。
「プラグインの無効化」、「テーマをtwentytwentytwoに名前を変更」しても、管理画面に入ることができませんでした。無効化、名前の変更をしただけで更新されるのですか? さらに更新するために何かする必要があるのでしょうか?
三つ目の方法、Wordpressの6.4.2の前のバージョンをダウンロードして手動でアップデートしてみます。Wordpress6.4.2を更新中にエラー状態になりましたので、6.4.1になると思います。
更新する必要があるのかご回答をよろしくお願いいたします。
すみません。先ほどお伺いするのを忘れてしまいました。
Wordpress6.4.2を更新の途中で「必要なファイルをコピーしています」で止まってしまいましたが、これは6.4.2に更新が完了しているということではないのでしょうか?
よろしくお願いいたします。
無効化は、名前の変更をしただけで更新されるのですか?ということについてですが、その通りです。特に設定ボタンを押すとか、更新ボタンを押すとかは必要なく、FTPソフト等でディレクトリの名前変更をすればそれだけでOKです。
「必要なファイルをコピーしています」で止まってしまったとのことで、更新は完了していない可能性が高いと思います。
あと、更新途中で止まった場合、htmlディレクトリ(wp-login.phpとかがある場所、サーバーによっては一つ上の親ディレクトリの場合もありますが)に「.maintenance」というファイルが残っている場合があり、更新が正常に完了してもこれが残っているとログインできませんので、残っている場合は「.maintenance」は削除してください(Deleteでも右クリック削除でも普通の削除でOKです)。
また、WordPress6.4.1をファイルの上書きで手動ダウングレードする場合は、pluginsやtheme内のテーマは、元の名前に戻してからやってください。
ありがとうございます。
「.maintenance」は削除しました。
Wordpressのバージョンは、ソースから確認しましたら、6.3.2でした。最新の6.4.2に一気にバージョンアップしてもだいじょうででしょうか? 6.4.2はダウンロードしました。
よろしくお願いいたします。
一般的には順番にアップデートすべきだとは思いますが、一気に6.4.2にしても大丈夫な可能性もあります。
ただ、めんどうでなく、6.3.2がダウンロードできるのであれば、一度6.3.2で正常に稼働する状態にしてから、管理画面からアップデートする方が安全な気がします。
ありがとうございます。6.3.2をダウンロードし、正常に稼働する状態にしてから6.4.2を管理画面からアップデートしてみます。
WordPress 6.3.2をダウンロードし、FTPでプラグインをすべて無効化しアップデートしたところ、ログインし管理画面に入ることができました。
6.4.2にアップデートの途中で「ファイルをコピーしています」・・で止まってしまいましたので、6.3.2と6.4.2のデータが混在している状態ですので、6.3.2をインストールして元に戻したということなのかなと思います。
残りの作業として6.4.2にアップデートします。
いろいろご助言をいただき大変感謝しております。
ありがとうございました。