本記事の根拠
- PHPのバージョンアップした時に発生した重大なエラーを経験&解決済
こんな方におすすめ
- 『このサイトで重大なエラーが発生しました』を解決したい方
それでは、本題に入ります。
『このサイトで重大なエラーが発生しました』エラーの解決方法
結論から申し上げますと、私の場合はPHPのバージョンアップをしたことが原因でした。
PHPバージョンをあげることで、使っていたプラグインがエラーを起こしました。
下記が解決策。
ポイント
PHPバージョンを元に戻す。
↓
PHPバージョンを元に戻したあとに、バックアップから復元。
注意点としては、先にPHPバージョンを元に戻しておくことです。
PHPバージョンを元に戻すことができてから、復元処理を実行しました。
私はエックスサーバーを使っているので、7日分の自動バックアップがあります。
10分程で復元作業は、完了しました。
ココがポイント
PHPバージョンを先に元に戻す
バックアップから復元する
先述しましたが、PHPバージョンを先に元に戻しておく必要があります。
PHPバージョンを元に戻さないまま、バックアップから復元しても再びエラーになります。
PHPのバージョンアップをすることで、エラーが発生する理由は大きく2つあると考えています。
注意ポイント
- ワードプレステーマがアップデートしたPHPバージョンに未対応
- プラグインがアップデートしたPHPバージョンに未対応
私の場合は後者の、『プラグインがアップデートしたPHPバージョンに未対応』なことが原因でした。
詳しく説明します。
プラグインがアップデートしたPHPバージョンに未対応
結論です。
『Crayon Syntax Highlighter』は、PHPバージョン7.0以降は対応していませんでした。
アフィンガー6をインストールするためには、PHPバージョン7.3が必要です。
アフィンガー6をインストールするため、PHPバージョンを7.2.34→7.4.13へ変更しました。(推奨って書いてるしねぇ〜)
PHPバージョンが対応していないために、『Crayon Syntax Highlighter』が動作しなくなりました。
『Crayon Syntax Highlighter』を使用しているページに重大なエラーが発生します。
ちなみにですが、『Crayon Syntax Highlighter』を使っていないページは通常表示されていました。
注意
『Crayon Syntax Highlighter』は、PHPバージョン7.0以降は対応していなかった・・・。
重大なエラーの対策
『Crayon Syntax Highlighter』の後継プラグイン『Urvanov Syntax Highlighter』を使えば、重大なエラーは解消できます。
手順を説明します。
step
1『Crayon Syntax Highlighter』無効化
step
2『Urvanov Syntax Highlighter』有効化
step
3『Crayon Syntax Highlighter』を使用していたページの表示確認
ポイント
PHPバージョンをアップデートする前には、テーマとプラグインが対応していることを確認しておくことをオススメします。
要は、PHPバージョンアップは慎重にすべき。
ワードプレステーマがアップデートしたPHPバージョンに未対応
ワードプレステーマが、PHPバージョンの要件を満たしていない場合にもエラーは発生します。
以前、アフィンガー5を使用していたときに、PHPバージョンを変更したことがあります。
PHPバージョンをアップデートしました。
するとなんということでしょう~、全ページ表示が崩れました。
スマホ表示は大丈夫なのに、パソコン表示はぐちゃぐちゃになっていました。
デバッグモードって出てるし、肝を冷やしました。
PHPバージョンの変更には、トラブルがつきものです。
石橋を叩いて渡る気持ちで、PHPバージョンを変更しましょう。
ちなみに、私はエックスサーバーを使っています。
標準無料機能で自動バックアップ&復元機能があるので、とても安心です。
参考記事
エックスサーバー8つのメリット&WordPressを移行した3つの理由
まとめ
繰り返しになりますが、PHPバージョンをアップデートするときには下記の2点を確認しておきましょう。
ポイント
- テーマが対応しているPHPバージョン
- プラグインが対応しているPHPバージョン
当ブログでもたびたびご紹介していますが、ワードプレスにインストールするプラグインは極力減らした方がいいです。
理由は下記。
ちなみにですが、今回のエラーからの復旧の件を通してエックスサーバーの頼もしさを再実感。
何かあれば、バックアップから戻せばいっかぁ〜みたいな感じです笑。以上です。