PHP7.4のサポートが切れてしまったので、管理しているサーバをPHP8.1にアップデート中です。
その際にWordPressを動かしているサーバで下記PHPの警告メッセージが表示されたので対処しました。
PHP Warning: Attempt to read property "ID" on null in ...
スポンサーリンク
「Attempt to read property “ID” on null」の原因
これはこのようなコードを書いていると出る可能性があります。
function my_code() { global $post; $post_id = $post->ID; . . ~ 省略 ~ . }
WordPressで投稿IDを取得したい場合によく使う方法かと思いますが、投稿・固定ページ以外でこれが呼び出されてしまうと、WordPressのグローバル変数である$postにはNULLが設定されているみたいです。
これが原因でPHPの警告メッセージが表示されます。警告なので無視しても動作には影響ないんですけど、気持ち悪いのでこの際に修正しておきます。
対処方法
グローバル変数の$postを投稿・固定ページ以外で呼び出す可能性がある処理は、このようにNULLかどうか判定するようにしましょう。
function my_code() { global $post; if ( is_null( $post ) ) { return; } $post_id = $post->ID; . . ~ 省略 ~ . }
投稿IDが欲しい時は$postを多用していたので修正箇所が一杯です😇
以上、WordPressの「Attempt to read property “ID” on null」を修正する方法でした。