勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHP8系で「Warning: Attempt to read property "xxxxxx" 」エラーの対応方法

   2024/03/29  PHP WordPress CMS

PHP8系&WordPress6.4.3で「Warning: Attempt to read property "xxxxxx" on false in」というエラーログが見受けられた。以前「WordPressで精度の高い関連記事を表示」で追加したソースコードでエラーが発生している模様。以下に対応方法をメモ。

 

原因

存在しないプロパティの値をアロー演算子で取得しようとした際に発生するエラーとなる。

具体的には以下のようなソースコードでタグを設定していない記事を閲覧した際「array_push( $tag_ID, $tag->term_id );」の部分で「$tag->term_id」が存在しないためエラーが発生した。

$tags = get_the_tags($post->ID);
$tag_ID = array();
foreach((array)$tags as $tag):
    array_push( $tag_ID, $tag->term_id );
endforeach;

 

対応方法

issetで値が存在するかチェックする。具体的には以下のような形。

if( isset($tag->term_id) ){
    array_push( $tag_ID, $tag->term_id );
}

 

所感

PHPのメジャーバージョンアップを行うとやはり色々とエラーが出てくる。

WordPressだとWP自体やプラグインを更新すれば何とかなるが、独自に追加したようなソースコードとかは一つずつ対処していかないといけないのが割と大変。

公式案内で「PHP 7.4.x から PHP 8.0.x への移行」というページがあるので目を通しておいた方が良さそう。

 - PHP WordPress CMS

  関連記事

WordPressのWP-Mail-SMTPプラグインが動かない

PHPのバージョンを下げてからWordPressで外部メールサーバが使えるWP- ...

WordPressのContact Form 7プラグインでユーザーに対して自動返信メールを送信する方法

WordPressのContact Form 7プラグインで実装されたお問い合わ ...

WordPressで自作テーマにウィジェットを登録する方法

WordPressで自作したテーマでウィジェットを登録しようとしたところダッシュ ...

WordPressにてパーマリンク設定のカテゴリーベースに関して

WordPressのパーマリンク設定でカテゴリベースを設定したかった。ここは変更 ...

WordPressで連載(シリーズ)記事機能を「Series」プラグインで実装する方法

WordPressで連載(シリーズ)記事機能を実装したい。例えば「PHPでBBS ...