我正在尝试获取页面的所有直接子级。但是我也得到了所有的孩子和大孩子。有什么想法吗?

PHP来源:

$args = array( 
        'child_of' => $post->ID, 
        'parent ' => $post->ID,
        'hierarchical' => 0,
        'sort_column' => 'menu_order', 
        'sort_order' => 'asc'
);
$mypages = get_pages( $args );

foreach( $mypages as $post )
{

$post_tempalte = the_page_template_part();

get_template_part( 'content' , $post_tempalte );
}


根据文档,我的$args应该是正确的,但是完全忽略了parenthierarchical

我的页面结构如下:


父母
-孩子1
-孩子2
-孩子1 to child 2
--Child 2 to child 2
-Child 3


我只想获取child 1child 2child 3

评论

也尝试考虑使用深度选项。我发现并且似乎可行的另一种解决方案是$ mypages = get_pages('child_of ='。$ post-> ID。'&sort_column = post_date&sort_order = desc&parent ='。$ post-> ID);在这里,您可以根据需要更改sort_column和sort_order。

@RohitPande的深度完全没有帮助我,将child_of和parent设置为相同。

#1 楼

请检查参数“父母”。名称后面似乎有空格。

评论


天啊。如此愚蠢。但是,谢谢,这为我节省了一些时间。 :)

–杰米特林
2012年11月27日14:45

#2 楼

通过“ wp_list_pages”或“ get_pages”函数的参数“ depth”,我们可以定义要检索的层数。因此,在这里,我将显示当前页面的所有第一个子级别。

            <?php global $post;
                    wp_list_pages( array(
                    'child_of' => $post->ID, // Only pages that are children of the current page
                    'depth' => 1 ,   // Only show one level of hierarchy
                    'sort_order' => 'asc'
                ));
            ?>


评论


get_pages函数似乎没有深度参数,或者至少没有文档记录:developer.wordpress.org/reference/functions/get_pages。

– kloddant
19-10-14在15:26