2011-09-20 102 views
1

我試圖根據當前活動的頂級頁面生成頁面樹子菜單列表。該comlete頁面樹如下:側邊欄中的WordPress動態頁面樹菜單

1.0.0首頁項目

  • 1.1.0子頁面項目
    • 1.1.1孫子頁面項目
    • 1.1.2孫子頁面項目
  • 1.2.0子頁面項目
    • 1.2.1孫子頁面項目
    • 1.2.2孫子頁面項目
  • 1.3.0子頁面項目
    • 1.3.1孫子頁面項目
    • 1.3.2孫子頁面項目

2.0 .0首頁商品

3.0.0首頁商品

(第二和第三頂頁面項目也有類似的層次)

我想在我的sidebar.php有以下行爲的頁面樹:

  • 只有當前活動首頁及其所有子並且所有 他們的孫子們在瀏覽此特定首頁時展開 分支
  • 當前頁面項目和當前父項突出顯示。
  • 其他頁面頂部的項目被隱藏

我的短,這意味着整個工具欄菜單頂部的頁面之間移動時變化,但仍然是一個每個頁面頂部的分支/導航內保持不變下降到單頁。

此外,我想按菜單順序顯示頁面項目。

有沒有人有一個代碼片段og想法如何實現這一目標?

+0

永遠不要忘記在這樣的問題中添加一些代碼片段,它可以幫助像我這樣的用戶理解問題,以及如何解決它 – Machado

回答

0

啊,我設法解決它。最初我無法弄清楚當前頁面項目類已經去了哪裏。它在單頁級別上工作,但不在父級或祖先級別上工作。我不得不在模板中的側邊欄之前插入以下內容: <?php wp_reset_query(); ?> 這會刷新該錯誤。其次,我選擇隱藏所有頁面項目與CSS顯示:無;並且只顯示帶有current_page_item,current_page_parent和current_page_ancestor的頁面項目以及display:block ;.

最後但並非最不重要以下是獲取位於我的側欄頁面列表代碼: <?php wp_list_pages('sort_column=menu_order'); ?>

就是這樣,就是這樣!

完美的作品!

但是,我不是PHP大師,所以如果任何人都可以給我一個更優雅的方法我所有的耳朵!