Wo ist das Objektobjekt “Vorfahren”?

Ich arbeite normalerweise mit dem ancestors Attribut des Post-Objekts:

 if ( in_array( $target_id, $post->ancestors ) ) { // do whatever } 

Aber beim Debuggen des Post-Objekts habe ich gesehen, dass es keine Spur davon gibt.

Kann mir jemand helfen, den Grund dafür zu verstehen?

Solutions Collecting From Web of "Wo ist das Objektobjekt “Vorfahren”?"

Der Grund, warum Sie es nicht sehen, wenn Sie ein Objekt dumpen, liegt daran, dass es keine tatsächliche Objekteigenschaft ist.

WP_Post implementiert die magische Methode __get() für ancestors und mehrere weitere Schlüssel wie diese. Wenn Sie auf $post->ancestors() get_post_ancestors() erhalten Sie nicht einen Wert aus dem Objekt, sondern die Rückgabe der function get_post_ancestors() .

Kurz gesagt, dies ist wie eine virtuelle API-Verknüpfung.