大切なあなたに、良きもの、良き方法を。
お問い合わせ

WordPressでPHP8.1にしたら、warning: undefined property…のエラー。その解決策

更新日 : 2024/08/26

サーバーのPHPバージョンを7から8にバージョンアップしたら、WordPress上にエラーメッセージ「warning: undefined property」が出るようになりました。 具体的には、プラグインを使わずに「パンくずリスト」を設置してるのですが、特定のページ、カテゴリーに属しない固定ページでメッセージを吐いているようです。 このページでは、同じメッセージが出て困っている方のヒントになればと思い、僕の処置した方法を記録します。

warning: undefined propertyとは何をいっているのか?

単純に訳すと「プロパティーが見つかりません」言っているようです。

PHP8になって厳格化が進んで、変数の有無などをはっきりさせずにするとエラーを吐くようになったようです。

回避策:issetで中身の有無を調べて条件分岐

回避策は、エラーを吐いてる箇所の変数を「issetでif文で分岐」してあげればOKです。

issetは、変数の値がセットされているか、いないかを返してくれます。

※エラー箇所は、エラーメッセージに行番号あるブロックです。

具体的な処置

僕の具体的な処置です。

パンくずリストのカテゴリーの部分に、カテゴリーの有無を調べるif文を追加します。囲みます。

if(isset($変数)){表示したい内容}

変数の内容(配列の内容)があれば表示する。(この場合はカテゴリーに分類されたページなら)

if(isset($cat_list)){
        $cat_list = array();
           while ($cat_id != 0){
               $cat = get_category( $cat_id );
               $cat_link = get_category_link( $cat_id );
               array_unshift( $cat_list, '<a href="'.$cat_link.'">'.$cat->name.'</a>' );
               $cat_id = $cat->parent;
           }
           foreach($cat_list as $value){
               echo '<li>'.$value.'</li>';
               echo $sep;
           }
           }
コメント

コメントフォーム

コメント欄

目次