2012-10-23 35 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

相关问题