边栏中的Wordpress子导航菜单

时间:2012-06-18 21:11:23

标签: wordpress

我有一个具有以下结构的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

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

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

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

由于

布雷特

2 个答案:

答案 0 :(得分: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 } ?>

答案 1 :(得分:1)

布雷特,

您必须检查并查看是否有祖父母后遗嘱,然后使用后祖父母的身份证明。您可以使用get_post_ancestors() function找出有多少祖先,然后相应地调整您的代码。