PHPバージョンを「PHP8.1.6」に変更したらサイドバー以降が表示されなくなる!【解決済】
投稿日:2022/7/25 更新:2022/7/29 コメント 2件 ワードプレス php 8.1, バージョンアップ, ワードプレス, 不具合エックスサーバーからPHPバージョン「PHP 8.1.6」が正式サポートされたとのお知らせがあったので「PHP7.4.28」から変更してみました。
PHPバージョンを「PHP8.1.6」にアップデート
アクセスの多い所有サイトでやって不具合があると閲覧者の方々に迷惑が掛かるのでアクセスが少ないwp-note.comで試してみました。サイトデザインはよくあるようなサイドバーがある奴ですが完全にオリジナルな自作のテーマです。
やり方は公式サイトに詳しく載っているので端折って説明しますが、Xサーバーのサーバーパネルにログインして「PHPバージョン切替」から切り替えたいドメインを選択して変更するPHPバージョンを選択するだけです。万が一、表示レイアウトが崩れたり動作しない機能がある場合には同じように元のバージョンに変更するだけで元に戻せます。
現在利用可能なバージョンは以下のような感じですが、問いあえず最新の8.1.6にしてみました。
変更後にサイトを再読み込みするとサイドバーがなくなってました。
また、サイドバーだけじゃなく「Font Awesome 4.7.0」で使用しているアイコンが全く表示されなくなっており、新旧のコードを比較したらサイドバーの「絞り込み検索」以降からフッターまでのコードがまったく生成されてませんでした。フッターには「Font Awesome」などのCSSとJavaScriptを遅延読込するようにしていたのでそれらがすべて読み込まれていない為、「Font Awesome」のアイコンが表示されなくなっていたのでここは問題の根幹ではないようです。
バージョンを「PHP7.4.28」に元に戻すとまた表示されるようになりますが、PHP バージョン「8.0.16」でも同じようにサイドバー以降のコードが生成されていませんでした。
PHP Compatibility Checker
どこに問題があるのか調べようとPHPの互換性を調べる「PHP Compatibility Checker」をインストールして使用しようとしましたが、そもそも7.3までしか確認できないので使えませんでした。
急いでバージョンアップする必要はまったくないんですがいずれは7.4.28が非推奨となるのは目に見えているのでテーマを変えない限り何らかの対策は必要です。
PHPはワードプレスで使われているPHP(テンプレートタグなど)は何とか分かりますがPHPの基礎も知らないので下記URLの記載されているページを見ても参考にならないのでテスト環境を構築してコードをコメントアウトなどして問題となっているコードを探っていく行くしか手はないようです。
PHP 7.4.x から PHP 8.0.x への移行(下位互換性のない変更点)
検証ログ
モバイルでのアクセスだと問題ないようです。
下図は表示が止まっているサイドバーのコードです。
このコードのPHPの部分をコメントアウトしても変化なかったんですが、削除したらサイドバーが表示されるようになったのでこのコードに問題があるようです。あまり手間暇かけてられないのでPHPの部分を削除して対応しました。
2 件のコメント
初めまして、PHPとSQL、JavaScriptで開発をしている開発者です。
PHPは7.4x系から8.0x、8.1xに変わってコードの評価がシビアになっています。
特に8.0xまでは変数が無くてもエラーになりませんし、無いテーブルを読んでもエラーが
でませんが、特に無いSQLのテーブルを読んだ後のhtmlが全部消えてエラーも出ない場合が
あるようです。
テーブルを作成して置くと問題はなくなります。テーブル名やテーブルの有無もチェックして
みてください。
コメント有難うございます。
なんかスーパーマンが現れた感じですごく嬉しいんですが、
個人的にはハードルが高くて対応できそうにないですねw。