1

我有一个具有以下结构的 WordPress 网站

Page 1
   Sub Page 1
   Sub Page 2
Page 2
   Sub Page 1
      Sub-Sub Page 1
      Sub-Sub Page 2
      Sub-Sub Page 3
   Sub Page 2
   Sub Page 3

在任何子子页面上时,我想在侧边栏导航中列出子页面。

使用下面的代码作为起点......这不适用于子子页面,因为它在导航中显示子子页面而不是子页面。

<?php
  if($post->post_parent)
  $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
  else
  $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
  if ($children) { ?>
  <ul>
  <?php echo $children; ?>
  </ul>
<?php } ?>

谢谢

布雷特

4

2 回答 2

3

得到它的工作。这是最终代码(从http://cssglobe.com/post/5812/wordpress-find-pages-top-level-parent-id提取,几乎没有修改)

<?php

if ($post->post_parent) {
    $ancestors=get_post_ancestors($post->ID);
    $root=count($ancestors)-1;
    $parent = $ancestors[$root];
} else {
    $parent = $post->ID;
}

$children = wp_list_pages("title_li=&child_of=". $parent ."&echo=0&depth=1");

if ($children) { ?>
<ul>
<?php echo $children; ?>
</ul>
<?php } ?>
于 2012-06-20T19:09:01.830 回答
1

布雷特,

您必须检查是否有后祖父母,然后使用后祖父母的 id。您可能可以使用该get_post_ancestors() 函数找出有多少祖先,然后相应地调整您的代码。

于 2012-06-20T13:48:22.640 回答