サーバーの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;
}
}
NAS(ネットワークディスク)が故障!中身のデータを救出できるかもしれない方法 |
コメント
コメントフォーム
j6c1if