如何在wordpress中获取父页面列表

时间:2012-10-23 03:23:23

标签: php html wordpress

我试图在wordpress中列出所有父页面。更具体地说,一个用作面包屑跟踪的祖先页面列表。

我希望得到父母,父母等,一直到顶级。

例如,对于此页面结构:

    • 子页面
      • Subsubpage
        • Subsubsubpage

从子信息页调用它应该返回

  • Page
  • 子页面
  • Subsubpage

从Subsubpage调用它应该返回

  • Page
  • 子页面

1 个答案:

答案 0 :(得分:0)

get_post_ancestors()以数组的形式返回所有祖先的页面ID。

wp_list_pages()接受逗号分隔的页面ID列表

implode()函数将数组与字符串粘合在一起,在本例中为逗号。

通过使用逗号破解get_post_ancestors的结果,它有效地创建了一个逗号分隔的祖先页面ID列表,以传递给wp_list_pages()。

wp_list_pages()的默认用法将创建嵌套列表。将depth选项设置为-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>

令我惊讶的是,我无法通过谷歌搜索找到这样的解决方案。