勉強したことのメモ

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

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

WordPressのサーバー移行で気付いた点
WordPressのサーバー移行で気付いた点

あるWordPressを置いているサーバーのリソースが苦しくなってきたので、新た ...

WordPressサイトのロードアベレージが高い際の対応方法
WordPressサイトのロードアベレージが高い際の対応方法

あるWordPressサイトのロードアベレージが先月ぐらいまでは通常0.5前後で ...

Advanced Custom FieldsでGoogleMapの使用する方法
Advanced Custom FieldsでGoogleMapの使用する方法

Advanced Custom FieldsでGoogleMapを使用したかった ...

WordPressのメディアライブラリで「画像を編集」をクリックしても画像が表示されない(編集できない)場合の対応方法
WordPressのメディアライブラリで「画像を編集」をクリックしても画像が表示されない(編集できない)場合の対応方法

WordPressのメディアライブラリで「画像を編集」をクリックしても画像が表示 ...