work.log

エンジニアの備忘録的ブログ

PHP8以降で表示されるWordPressの「Attempt to read property “ID” on null」を修正する

投稿:2022-12-13 13:47  更新:

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」を修正する方法でした。

スポンサーリンク

コメント

コメントを残す

よく読まれている記事

  • 今日
  • 週間
  • 月間