web-dev-qa-db-fra.com

Impossible d'obtenir l'objet grand-parent

J'utilise le code suivant pour obtenir l'ID du grand-parent et de l'arrière-grand-parent de la page en cours:

<?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>

Cependant, lorsque j'essaie de leur faire écho, je ne reçois que la valeur de la page en cours:

$ actuel: 335

$ grand-parent

$ greatGrandparent:

Je suis sûr de regarder une page qui a réellement des pages de grands/grands-parents ... quelqu'un peut-il voir ce que je fais mal?

1
pealo86

juste une petite erreur. Pour obtenir les objets parent et grand-parent, vous devez également les récupérer. La propriété "post_parent" ne vous donne que l'ID de ce post, pas le post_object lui-même.

Donc, vous changez votre code comme ceci:

<?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 } } ?>

Et tout va bien!

1
kuchenundkakao