【PHP8】カスタム投稿でタクソノミータームを出力するとエラーが出る【解決】

今回PHP8以上のサーバーでWordpress作業している際にでたエラーについてメモ&ご報告します

目次

何をしようとしたら出たのか

カスタム投稿のタクソノミータームをパーツで使用している箇所に出力する、

$post->ID;

という記述で以下の表示が出ました。

Attempt to read property “ID” on null

エラー概要

ざっくり言うと、『IDの定義が見つからないよ!』という警告のようでした。

PHPバージョンアップに伴い、記述の宣言なども厳しくなったようです。

解決方法

IDの定義を記述する

以下の記述をPHPファイル上部へ記述したところ改善しました。

global $post;
if ( is_null( $post ) ) { return; }
$post_id = $post->ID;

$postにはNULLが設定されており、『if〜』でこの投稿がNULLかどうかの判定を入れると改善します。

そのままにしておく

警告は管理画面へログインしたユーザーにしか見えないため、そのままにしておく

しかし今後のエラーでWordpressが動作しなくなる恐れがあるため、推奨していません!

PHPのバージョンが上がるごとに、記述内容によってはエラーが出たり表示されなくなったり、、こまめな確認が必要ですね!

  • URLをコピーしました!
目次