web-dev-qa-db-ja.com

祖父母オブジェクトを取得できません

現在のページの祖父母とすばらしい祖父母のIDを取得するために、次のコードを使用しています。

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

しかし、それらをエコーし​​ようとすると、現在のページの値しか得られません。

$現在:335

$祖父母

$ greatGrandparent:

私は実際にすばらしい/祖父母のページを持っているページを見ているのです...誰かが私が間違っていることを見ることができますか?

1
pealo86

ちょっとしたエラーです。親オブジェクトと祖父母オブジェクトを取得するには、それらもget_postする必要があります。プロパティ "post_parent"はあなたにその投稿のIDを与えるだけで、post_object自体は与えません。

だからあなたはこのようにあなたのコードを変更します:

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

そして、すべてが大丈夫です!

1
kuchenundkakao