勉強したことのメモ

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でカスタムフィールドとCSVファイル投稿する方法

WordPressでカスタムフィールド設定している環境に、CSVファイルアップロ ...

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

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

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

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

WordPress Popular Postsのサムネイルが表示されない

WordPressの人気記事を表示させるWordPress Popular Po ...

WordPressのContact Form 7プラグインで入力内容確認及び送信完了ページを実装する方法

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