wake-up-neo.net

Großelternobjekt kann nicht abgerufen werden

Ich verwende den folgenden Code, um die ID des Großelternteils und des Urgroßelternteils der aktuellen Seite zu ermitteln:

<?php
  $current = get_post($post->ID);
  $grandparent = $current->post_parent;
  $greatGrandparent = $grandparent->post_parent;
?>

<h2>$current: <?php echo $current->ID; ?></h2>
<h2>$grandparent: <?php echo $grandparent->ID; ?></h2>
<h2>$greatGrandparent: <?php echo $greatGrandparent->ID; ?></h2>

Wenn ich versuche, sie wiederzugeben, erhalte ich jedoch nur den Wert der aktuellen Seite:

$ aktuell: 335

$ Großeltern

$ greatGrandparent:

Ich bin mir sicher, dass ich eine Seite mit Seiten von Ur-/Großeltern sehe ... kann jemand sehen, was ich falsch mache?

1
pealo86

nur ein kleiner fehler. Um die übergeordneten und übergeordneten Objekte zu erhalten, müssen Sie sie auch get_post. Die Eigenschaft "post_parent" gibt nur die ID dieses Posts an, nicht das post_object selbst.

So ändern Sie Ihren Code wie folgt:

<?php
  $current = get_post($post->ID);
  //Conditional to be sure there is a parent
  if($current->post_parent){      
      $grandparent = get_post($current->post_parent);
      //conditional to be sure there is a greatgrandparent
      if($grandparent->post_parent){
            $greatGrandparent = get_post($grandparent->post_parent);
      }
   }
?>

<h2>$current: <?php echo $current->ID; ?></h2>
<?php if($grandparent){    ?>
    <h2>$grandparent: <?php echo $grandparent->ID; ?></h2>
    <?php if($greatGrandparent){ ?>
          <h2>$greatGrandparent: <?php echo $greatGrandparent->ID; ?></h2>
  <?php } } ?>

Und alles ist gut!

1
kuchenundkakao