0

目前正在运行这个

$args = array(
    'post_type'       => 'page',
    'posts_per_page'  => 1,
    'post_parent'     => 1743,      
    'meta_query'      => array(
        array(
            'key'      => 'sticky',
            'value'    => '1',
            'compare'  => '=='
        )
    )
);

$the_query = new WP_Query( $args );

我在 post_parent 中有嵌套 2 层的页面,但它只拉深一层。有什么方法可以将其扩展到直接子级下方的子页面?

4

1 回答 1

0

我没有尝试过,但它应该可以工作:当你在循环中时,对于每个 2nd-tier 帖子(即,你当前能够访问的直接子级)捕获当前帖子 ID,如下所示

$level2_parent_ID = $post->ID;

然后使用 WP_Query 在查询中启动查询,使用 $sub_parent_ID 作为 post_parent 的值。这应该拉起孩子们的孩子们。

例如,要从上次中断的地方继续...

$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        echo '<li>' . get_the_title() . '</li>';
            $level2_parent_ID = $post->ID;
            $level2_args = array(
                'post_type'       => 'page',
                'posts_per_page'  => 1,
                'post_parent'     => $level2_parent_ID,      
                'meta_query'      => array(
                    array(
                        'key'      => 'sticky',
                        'value'    => '1',
                        'compare'  => '=='
                    )
                )
            );

            $level2_query = new WP_Query($level2_args);
            // The Loop-within-a-loop
                if ( $level2_query->have_posts() ) {
                while ( $level2_query->have_posts() ) {
                $level2_query->the_post();
                echo '<li>' . get_the_title() . '</li>';
                }
                }
            //plus whatever else you want to do in the outer loop
    }
} 
/* Restore original Post Data */
wp_reset_postdata();
于 2013-06-13T04:20:54.540 回答