PHP8以降では、存在しな配列の位置にアクセスるとWarning(警告)が表示されるようになりました。この場合の対処方法をご紹介いたします。

PHP8に変更すると、Warning: Trying to access array offset on false in が様々なページに表示されるようになった場合の修正方法

Warning: Trying to access array offset on false in ファイル名 on line 数字

この警告(エラーではありませんので動作には現状悪影響を与えません)は、PHP8.3に置きまして、存在しない配列のキーや位置を参照しようとすると表示されるようになりました。

例として下記のようなコードで警告が出力されます。

$dir = $lang_options['key01'];

$lang_options 配列にキーkey01が無い場合警告となります。またこの警告出力がheader already sentエラーを引き起こしワードプレスにログインできなくなったり、投稿の更新ができなくなったりすることもございます。

Warnngの文言の ファイル名 の部分にこの警告を出しているファイルのパスがあり、数字 のところに行数がありますのでその部分をピンポイントで修正していく方法が最も確実です。

修正例

$dir = null; //まず変数を空にします(プログラムの前にすでに何らかの値を入れている場合は不要です)
if(isset($lang_options['key01'])){ //配列キーに値が存在するか確認します
    $dir = $lang_options['key01'];
}

Warning表記を出さないようにすることでも修正可能です

ワードプレスのトップディレクトリにあるwp-config.phpの下記の行を

define('WP_DEBUG', ..... ;

下記のエラーを出力しない設定に置き換えます

define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY',false);
ini_set('display_errors',0);
error_reporting(0);

ただ、PHPのWarningが次のバージョンでエラーになるようになったり、その後のサイトの動作に何らかの支障が出る場合もございますのでできるだけピンポイントで正攻法で修正いただくことをお勧めいたします。

WordPress ワードプレスのエラーやバグの修正のご依頼・ご相談はWPドクターまでお気軽にお送りください