Sub Navigation in Sidebar

时间:2012-06-20 作者:Brett

测试地点:http://www.indysouthportdental.com.php5-1.ord1-1.websitetestlink.com

我只想在查看父级中的任何页面时,在侧边栏中显示父级的子级。

例如,《口腔健康》有10个子页面。其中一些儿童(例如治疗)页面有儿童页面(口腔健康的孙子)。

即使我在孙子页面上,我仍然希望列出父级的唯一子页面。

这是我正在使用的代码

<?php
if($post->post_parent)
$children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0&depth=1");
else
$children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0&depth=1");
if ($children) { ?>
<h2>Oral Health</h2>
<ul>
<?php echo $children; ?>
</ul>
<?php } ?>
这段代码在任何孙页面而不是子页面上显示相关的孙页面。

(希望一切都有意义……)

2 个回复
SO网友:Brett

让它工作起来。这是最终代码(从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 } ?>

SO网友:Devin

只需使用以下选项:

<?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 } ?>
你应该没事的

结束

相关推荐