使用get_pages在WordPress中仅获取直接子页面


20

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

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
--Child 1胎2
--Child 2子2
-儿童3

而且我只想得到child 1child 2child 3


也尝试考虑该depth选项。我发现并且似乎正在工作的另一个解决方案是$mypages = get_pages('child_of='.$post->ID.'&sort_column=post_date&sort_order=desc&parent='.$post->ID); 在这里,您可以根据需要进行更改sort_column和更改sort_order
罗希特·潘德

@RohitPande depth完全没有帮助我,设置child_ofparent保持原样。
Volker E.

Answers:



3

通过“ 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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.