2012-06-18 110 views
1

我有一個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 } ?> 

感謝

佈雷特

回答

1

佈雷特,

你必須檢查,看看是否有一個帖子祖父母,然後使用後祖父母的ID。你可以使用get_post_ancestors()function來找出有多少祖先,然後相應地調整你的代碼。

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

謝謝你,你一定已經救了我大約2小時 – Nicola