私はいくつかの必要性のために私のwp_enqueue_scriptsアクションでget_the_ID()を使用しています。
Notice:C:\ wamp\www\WordPress\wp-includes\post-template.phpの29行目にある非オブジェクトのプロパティを取得しようとしています
私はなぜこれが起こるのか知っています、私の質問はなぜこれが起こるべきですか? WordPressは404に割り当てられた$ postがないことを知っていて空の結果を返すことになっていませんか?
私は使用する必要がありますか:
if( !is_object($post) ) return;
私はその通知を取り除くためにget_the_ID()を使用していますか?
get_the_ID()
は壊れています。
function get_the_ID() {
return get_post()->ID;
}
ID
オブジェクトを返す関数でメンバーpost
を使用しようとします 時には
/*
* @return WP_Post|null WP_Post on success or null on failure
*/
function get_post( $post = null, $output = OBJECT, $filter = 'raw' ) {
get_posts()
はNULL
を返すことができ、NULL
はオブジェクトではないのでメンバーID
を持ちません。
404ページにはグローバルなpost
オブジェクトはありません。 $post
はグローバル変数なので、 どこでも、 単一のページでも削除できます。
そのため、get_the_ID()
を使用するときはいつでも、post
オブジェクトをテストする必要があります。
if ( get_post() )
{
$id = get_the_ID();
// do something
}
ここで学ぶべき2つのレッスンがあります: