对wp_list_ages()函数感到困惑-如何显示选定的首页及其所有子页面

时间:2011-03-23 作者:dashaluna

我有点困惑wp_list_pages() 作用

假设我有3个顶级页面(没有父页面),每个页面都有一些子页面:

第1页[子页:1.1、1.2、1.3]

  • 第3页[子页:3.1、3.2]
    • 我想做的是显示顶层第2页和第3页及其所有子页:

      wp_list_pages( \'sort_column=menu_order&depth=0&title_li=&include=2,3\' );
      
      我也尝试过将深度指定为深度=2:

      wp_list_pages( \'sort_column=menu_order&depth=2&title_li=&include=2,3\' );
      
      但是,顶层页面2和3显示时没有子页面。我不确定我是否正确理解了函数描述。

      当子页面可以随时添加/删除时,我如何实现这样的功能。

      非常感谢,Dasha

    2 个回复
    最合适的回答,由SO网友:dashaluna 整理而成

    幸亏@Bainternet 为我指出exclude_tree, 虽然我最终使用了一些不同的代码。

    能够添加不必出现在菜单中的顶级页面非常重要(例如Improved Include Page Plugin. 使用exclude_tree 每次添加新的顶级页面时,我都需要更新代码。

    相反,我有一个需要显示在菜单中的所有顶级页面的数组。然后我收集他们所有的desendant页面并使用wp_list_pages 仅显示安全页面。

    代码如下:

    <?php //main nav: use wp_list_pages to display cirtain parents pages and all thier descendant pages
    $parents = array(2,3);
    $children = array();
    foreach($parents as $parent) {
        $child_pages = get_pages( "child_of=$parent" );
        if($child_pages){
            foreach($child_pages as $child_page){
                $children[] = $child_page->ID;
            }
        }
    }
    //merge $parents and $children
    $menu_pages = array_merge((array)$parents, (array)$children);
    $menu_pages_str = implode(",", $menu_pages); 
    ?>
    
    <ul id="main-nav">
        <?php wp_list_pages( "sort_column=menu_order&title_li=&include=$menu_pages_str" ); ?>
    </ul>
    
    还有,看看法典List parent Page and all descendant Pages 更多示例。

    SO网友:Bainternet

    当您使用include wp\\u list\\u pages的参数您基本上是告诉它只在列表中包含这些特定页面。

    您应该使用exclude_tree 相反,当使用此参数时,它将排除父页面和该父页面的所有子页面。

    比如:

    $top_pages_to_exclude = \'1\'; // the top page to be excluded ID, you can specify more then one \'1,2,23\'
    
    $args = array(
        \'sort_column\' => \'menu_order\',
        \'depth\' => 2,
        \'title_li\' => \'\',
        \'exclude_tree\' => $top_pages_to_exclude
    );
    wp_list_pages( $args );
    

    结束

    相关推荐

    Listing all sub-pages?

    我想知道如何编写实际访问页面的子页面列表。因此,我有2页和3个子页:Colors [page] - Red [child of Colors - subpage] - Blue [child of Colors - subpage] - Green [child of Colors - subpage] Numbers [page] - One [child of Numbers - subpage] - Two [child of Numbers