JIN│Undefined array keyエラーの原因と解決方法

WordPressテーマ「JIN」でPHPのバージョンを8.2に上げたときに出るエラーです。

カテゴリーページに出てくるエラー

Warning: Undefined array key "cps_none_labeling_act" in /home/hogehoge.co.jp/public_html/wp-content/themes/jin/category.php on line 58
Warning: Trying to access array offset on value of type null in /home/hogehoge.co.jp/public_html/wp-content/themes/jin/category.php on line 58
目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

JINのUndefined array keyエラーの原因と解決方法

以下、解説です。

エラー内容

PHP8.0以降で導入された厳密な型チェックにより、以前はNoticeレベルだった配列キー未定義のアクセスが、Warningに昇格しました。

Warning: Undefined array key "cps_none_labeling_act" in /home/hogehoge.co.jp/public_html/wp-content/themes/jin/category.php on line 58
Warning: Trying to access array offset on value of type null in /home/hogehoge.co.jp/public_html/wp-content/themes/jin/category.php on line 58

これは、$_GET$_POST、または カスタムフィールドで保存された配列の中に、想定していたキーが存在しないことが原因で発生します。

原因

このエラーは、主に以下のようなケースで発生します。

  • $_POST['キー名']$array['キー名'] のように、存在が保証されていないキーに直接アクセスしている
  • 特にPHP8.1以降では、未定義キーにアクセスした場合にWarningが出る仕様になった
  • WordPressテーマやプラグインが古いPHP仕様のまま書かれている

解決方法

カテゴリーページの編集画面から空保存(更新)するとWarningが消えます。

JINテーマでは、カテゴリーページを一度保存することで、テーマが内部的に必要なカスタムフィールドを初期化・保存します。
その結果、配列キーが正しく定義され、Warningが消えるのです。

JINのアップデート情報

後続のWordPressテーマ「JIN:R」がリリースされましたので、JINのアップデートは2024年の5月で止まっています。

できれば現在もメンテナンスされるWordPressのテーマに変更することをおすすめします。

  • URLをコピーしました!

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressのエラー・不具合対応のサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次