WordPress的子导航菜单在侧边栏

问题描述:

我有一个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 

当任何一个细分子页面上,我想列出的子页(S)在侧栏导航。

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

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

感谢

布雷特

布雷特,

你必须检查,看看是否有一个帖子祖父母,然后使用后祖父母的ID。你可以使用get_post_ancestors()function来找出有多少祖先,然后相应地调整你的代码。

得到它的工作。这是最后的代码(从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 } ?> 
+0

谢谢你,你一定已经救了我大约2小时 – Nicola