フッターに表示された Fatal error: Uncaught Error: について|問題箇所の特定と改善方法
Webサイトで突然、フッター部分に Fatal error: Uncaught Error:などのエラー表示が出てきました。
はじめてだと焦ってしまいますが エラーの前に操作していた行動から 何が原因だったか、
とか だいたい検討はつく…と思っていたら サイト画面、管理画面にも入れなくなってしまいました!
心当たりは先ほど操作していたプラグイン!?と思っていましたが、予想的中。
WP-Optimize のキャッシュの設定変更した後にエラーが起こってしまいました。
今回のトラブル、phpのエラーのように表示されるのでちょっと難しく感じましたが phpファイルを触ることなく解決できました。
サイトもいろいろと検索してみましたが なかなか欲しい情報が手に入らないもので
参考になればと思い、解決までの内容についてまとめてみます。
Search Console サーバーエラー 5xx
初めは作成したページを Search Console や PageSpeed Insights などでチェックしようとしていたところ
どうもページエラーになってしまい、表示ができなくなってしまいました。
Search Consoleでは 公開URLをテストすると このURLは登録できません。サーバーエラー 5xx と表示され
PageSpeed Insights ではドキュメントのエラーと表示されページの診断ができないとのこと。
いったい何が起こっているのか!?とあれこれ触っているうちに 完全にサイトエラー
管理画面にも入れなくなりました。
- サイトに技術的なエラーが起こっています -
WordPressの5.2以降では サイトでプラグインやテーマが致命的なエラーを発生させた場合に
それを検知してメールでお知らせをしてくれるという機能ができました。
このお知らせはすごく助かりますね!!
今回の場合、プラグイン WP-Optimize- Clean,Compress,Cache でエラーを捉えました。とあります。
今回のような場合は 原因がわかってもサイト画面を開くことができなくなっているため
リカバリーモードを利用して管理画面へログインします。
エラーが起きたプラグインを削除する
リカバリーモードでログインできましたら プラグインを削除していきます。
プラグイン画面から エラーが起こってしまったプラグインを削除するのですが、
データが壊れてしまっているため 削除できないといったケースがあります。
この場合は FTPファイルの方へ直接アクセスしファイルを削除します。
FTPファイルから削除する場合
FTPファイルはレンタルサーバからでも PC上に設置してあるFTPアプリケーションからでも方法は同じです。
サイトURL > public_html > wp-content > に進み plugins を選択
エラーの起きているプラグインを選択し削除します。
これで プラグインの削除が完了しました。
同じURLのサブドメインサイトもチェックする
サブドメインなどを使ってサイトを作成している場合、同じURLのサイトはすべて影響を受けてしまいます。
今回エラーを起こしたサイトのプラグインを削除しましたが改善されなかったため
同じURLのサブドメインのサイトにも 同じプラグインを使用していたのでこちらを削除。
これでサイトをチェックしてみたところ無事、サイトがもとに戻りました!
2度目のエラー発生!!
サイトが直ったということで、再度 プラグインをインストール。
今度はエラーのメールが届くこともなく しばらく気が付かなかったのですが
サイトのフッター部分にずらずら!っとコードが表示されているではありませんか!?
この画面が表示されるのは サイトのトップページと各記事のページのみ、
カテゴリーやタグのページには表示されません。
Search Console や PageSpeed Insights なども正常に利用でき、
サイトページもいくつかチェックしてみましたが正常に動作しているようです。
このフッター部分のコードの羅列される以外に 特にサイトに問題はないようなのですが
このまま放っておくわけにはいきません!!
このエラーコードをもう一度検証してみることにしました。
Fatal error: Uncaught Error:Class 'thk_locale’ not found in …
Fatal error: Uncaught Error:に続くClassがエラーの原因となる場所を表示してくれています。
このコードの場合、themes > luxeritas > footer >テーマのフッターに問題があるようなので
FTPファイルからfooter.php を開いてみました。
footer.phpの 221行目ということなので その行を見てみます。
少し上に書かれている facebookの文字。
これは OGPの設定に出てくる facebook のことだと分かりました!
この OGPのチェックを外していたのを思い出し、チェックを入れて保存。
サイトをチェックしてみたところ エラーが改善されました!
まとめ
今回、解決するために WordPressの復元や WordPress・テーマのバージョンアップなど、
考えられる改善方法をいろいろと試してみました。
WordPressのバージョンアップをしてみても問題が解決しなかったため
最終的に Fatal error: Uncaught Error:に続くClassがエラーの原因を調べることにしたということで
今回は php などの編集をすることなくエラーを改善することができました。
今回のようなケースでは 結果的には復元やバージョンアップなどの効果はありませんでしたが
設定の変更、編集などをする際にはどの箇所の変更をするのかをきちんと把握しておくことと
サイトのプラグインやテーマなど、編集する際には 必ず事前にバックアップを取っておくことで被害を最小限にとどめることができます。