お問い合わせはコチラから

PHP7⇒PHP8移行時のWordPressエラーの解消方法

サイト運営

WordPressサイトをPHP8に移行した際にPHPのエラーが起きて、サイトが表示できなくなりました。

この記事では、PHP7⇒PHP8に移行した時のエラーの内容デバッグ方法などをまとめています。

WordPressはPHP8に完全に対応していない

WordPress6.4からPHP8がPHP推奨バージョンになりました。

WordPressバージョン6.xでもWordPressはPHP8に完全に対応していません。ですので、通常の用途であれば無理にPHP8に変更する必要性はありません。

ただ、Wordpressコアの一部がPHP8に対応できていないだけでエラーが起きるわけではなく、PHP8に変更してもWordpressは正常に動きます。

WordPress 5.9 and PHP 8.0-8.1
PHP 8.1 was released on 25 November 2021. PHP 8.1 contains new features, performance improvements, deprecations, and bac...

PHP8移行時『このサイトで重大なエラーが発生しました。』の原因は?

WordPressサイトをPHP8に変更したら、『このサイトで重大なエラーが発生しました。』となるかもしれません。

その場合は、テーマかプラグインのどちらかがPHP8に対応していないため、PHPの致命的なエラーが起きています。

エラーメッセージが確認できないと原因がわかりませんので、以下の方法でデバッグします。

ダッシュボードにログインできる場合

デバッグモードにしてファイルでエラーメッセージを確認するのが確実ですが、まずは原因がテーマにあるのかプラグインにあるの切り分けます。

テーマファイルを公式テーマに変更してみる

テーマファイルに原因がある場合は、PHP8に対応済みのテーマに変更することでサイトが表示できるようになるか確認します。

新しい公式テーマであればPHP8への対応が行われているので、テーマに問題がある場合はテーマ変更することでサイトが表示できるようになります。

プラグインを一括で無効化してみる

プラグインに問題がある場合は、プラグインを最新版にバージョンアップすることで解消する可能性もあります。

それでもダメな場合は、プラグインを全て無効化して、ひとつづつ有効化していく作業で問題があるプラグインを特定することができます。

ダッシュボードにログインできない場合

wp-config.phpに以下の記述を追加することで、エラー情報がファイルに出力されるようになります。

ファイルの出力先はwp-conntent以下で、ファイル名はdebug.logとなります。

define( 'WP_DEBUG', true );

define( 'WP_DEBUG_DISPLAY', false );

define( 'WP_DEBUG_LOG', true );

debug.logの一番最後の行にFatal Errorがあると思いますので、『このサイトで重大なエラーが発生しました。』の原因個所になります。

自作テーマや非公式なテーマで保守が行われていない場合や、保守されていないプラグインなどで、PHP8に対応していない記述があるとFatal Errorになりやすいです。

PHP8に変更した時に起きたエラー

Deprecate curly brace syntax for accessing array elements and string offsets

私がPHP8に変更した時に発生したエラーは、『
Deprecate curly brace syntax for accessing array elements and string offsets』というもので、配列へのアクセスを波カッコで行っている部分でした。

発生個所はテーマファイルの中でした。テーマファイルが保守されていないので直接修正する必要がありました。

波カッコ({})を[]に変更したらエラーは無くなりました。

【PHP7.4】波括弧による文字列|配列アクセスが削除される - Qiita
大改修が入ることはないでしょうと言ったな、あれは嘘だ。2019/07/22の仕様凍結を目前に、いくつかのRFCが駆け足で投票に入っています。そのうちのひとつで、あらゆるPHPプログラムに影響する…

PHP8移行時に非推奨コードがレポートされた時の対応

まとめ

PHP8に移行することでPHPが高速化すると言われています。

その恩恵が受けられるのであればPHP8に移行してもいいかもしれません。

しかし、WordpressコアがPHP8へ完全対応していない点も考慮する必要があります。Wordpress自体がPHP8に完全に対応を謳っていないことから、プラグインもPHP8に対応していないものが結構あります。

もし、PHP8に変更したことで発生するエラーを自力で直せない場合や、修正箇所が多岐にわたる場合は、現時点で無理にPHP8に移行する必要はなく有志が修正するのを待った方がよいと思います。

この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/
こんな記事も読まれています

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

タイトルとURLをコピーしました