2012-10-23 63 views
0

我正在嘗試製作wordpress中所有父頁面的列表。更具體地說,用作麪包屑痕跡的祖先頁面的列表。我如何獲得wordpress中的父頁面列表

我想要獲得父級,它的父級等,一直到最高級別。

例如,對於當前頁結構:

    • 子頁面
      • Subsubpage
        • Subsubsubpage

從Subsubsubpage調用它應該返回

  • 的子頁面
  • Subsubpage

而且從Subsubpage稱之爲應該返回

  • 的子頁面

回答

0

get_post_ancestors()返回所有祖先的頁面ID的數組。

wp_list_pages()接受頁ID的逗號分隔的列表

的破滅()函數膠水連同一個字符串數組,在這種情況下一個逗號。

通過以逗號將get_post_ancestors的結果進行內插,它可以有效地創建一個逗號分隔的祖先頁面標識列表,以傳遞給wp_list_pages()。

wp_list_pages()的默認用法會創建嵌套列表。將深度選項設置爲-1可將所有項目排列在平面列表中。

最後一個重要的位,if語句檢查以確保該帖子在列出父頁面之前實際上具有父級。如果沒有父母,並且調用了get_post_ancestors(),則會由於某種原因返回WP網站上的所有頁面。

全部放在一起,

<ul> 
    <?php 
     $ancestorsCSV = implode(',' , get_post_ancestors($post)); 

     if ($post->post_parent){ 
      wp_list_pages('include='.$ancestorsCSV.'&title_li=&depth=-1'); 
     } 
    ?> 
</ul> 

,我意外的是沒能找到通過谷歌搜索這樣的解決方案。

+0

實際上,這會按字母順序返回它們。任何人都知道如何做到這一點,並保持正確的順序? – evandentremont

相關問題