2012-07-20 93 views
2

此代碼段顯示頁面的菜單樹和最多兩層的子頁面。我如何使這個遞歸爲無限級別工作?遞歸菜單樹功能

if(empty($wp_query->post->post_parent)) { 
    $parent = $wp_query->post->ID; 
} else { 
    $parent = $wp_query->post->post_parent; 
} ?> 
<?php if(wp_list_pages("title_li=&child_of=$parent&echo=0")): ?> 
<div id="submenu"> 
    <ul> 
    <?php wp_list_pages("title_li=&child_of=$parent"); ?> 
    </ul> 
</div> 
<?php endif; ?> 
+0

'這個片段顯示一個菜單tree' - 我沒看到任何類似樹的行爲 - 它看起來僅僅是上市後的父母的孩子,如果有一個還是這個帖子如果兒童不。我期望看到某種形式的循環或遞歸函數調用來顯示一棵樹...是否有更多的代碼包裝這個,你告訴我們? – DaveRandom 2012-07-20 20:01:00

+0

在這裏看到我的答案:http://stackoverflow.com/questions/5881335/how-do-i-list-a-directory-with-php-to-navigate-through-folders-without-javascri/5883362#5883362 – 2012-07-20 20:02:45

+0

@DaveRandom對不起,如果問題不清楚,但代碼片段沒有正確解析一棵樹(最多隻有兩層),這是我需要幫助弄清楚的。 – Joseph 2012-07-20 20:22:14

回答

0
<? 
function getParent($obj){ 
    if (empty($obj->post->post_parent)){ 
    return $obj->post->ID; 
    } else { 
    return getParent($obj->post->post_parent); 
    } 
} 
$parent = getParent($wp_query) 
?>