出現の可能性が高いPHPエラーについて

基本設定

  • 変数に関する仕様がPHP8で大きく変わりました。

結果、こんな感じのエラーが出る可能性があります。

Warning: Undefined variable $hoge in/サーバーパス/ドメイン/public_html/wp/wp-content/themes/P3/header.php on line ‘行数’

これは「header.phpのXXX行目に書いてある変数$hogeが定義されていないよ」というような意味合いです。

該当のソース

if( is_page( 'test' ) ){
	$hoge = 'mess';
}
echo $hoge;

「固定ページtestならば、変数$hogemessを代入して出力しなさい」というような意味ですが、固定ページtestではない場合どう処理するかが書かれていません。

PHP8以前は勝手に「$hoge = ”」と処理されていましたが、ここが厳密になりエラーを出すようになりました。

修正後のソース

if( is_page( 'test' ) ){
	$hoge = 'mess';
}else{
	$hoge = '';
}
echo $hoge;

または

$hoge = '';
if( is_page( 'test' ) ){
	$hoge = 'mess';
}
echo $hoge;

出たり出なかったり

このエラーメッセージは、サーバーによって出たり出なかったりします。

また、テーマオプション「テンプレート判別タグを表示する」をチェックしていない場合、エラーは出力されません。

 

関連記事