获取当前页面下级页面的WP查询

时间:2012-07-31 作者:Joshc

任何人都可以帮助我进行wp\\U查询。

我正在制作一个模板文件/循环,以创建和归档当前页面子页面的页面。

这个查询需要是自动的,因为我在中只使用了几页。

下面是我的查询,但它只返回我的帖子,而不是子页面。

<?php

$parent = new WP_Query(array(

    \'post_parent\'       => $post->ID,                               
    \'order\'             => \'ASC\',
    \'orderby\'           => \'menu_order\',
    \'posts_per_page\'    => -1

));

if ($parent->have_posts()) : ?>

    <?php while ($parent->have_posts()) : $parent->the_post(); ?>

        <div id="parent-<?php the_ID(); ?>" class="parent-page">                                

            <h1><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1>

            <p><?php the_advanced_excerpt(); ?></p>

        </div>  

    <?php endwhile; ?>

<?php unset($parent); endif; wp_reset_postdata(); ?>
提前感谢您的帮助。

乔希

4 个回复
最合适的回答,由SO网友:Pontus Abrahamsson 整理而成

你必须改变child_ofpost_parent 并添加post_type => \'page\':

WordPress codex Wp\\u查询Post & Page Parameters

<?php

$args = array(
    \'post_type\'      => \'page\',
    \'posts_per_page\' => -1,
    \'post_parent\'    => $post->ID,
    \'order\'          => \'ASC\',
    \'orderby\'        => \'menu_order\'
 );


$parent = new WP_Query( $args );

if ( $parent->have_posts() ) : ?>

    <?php while ( $parent->have_posts() ) : $parent->the_post(); ?>

        <div id="parent-<?php the_ID(); ?>" class="parent-page">

            <h1><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1>

            <p><?php the_advanced_excerpt(); ?></p>

        </div>

    <?php endwhile; ?>

<?php endif; wp_reset_postdata(); ?>

SO网友:Rvervuurt

我知道这是一个非常古老的问题,但既然我已经解决了这个问题,其他人也可能会这么做。

Wordpress有一个非常简单的页面列表解决方案,您可以在其中添加一些参数。

以下是显示页面子级所需的全部内容:

wp_list_pages(array(
  \'child_of\' => $post->ID,
  \'title_li\' => \'\'
))
看看reference page for wp_list_pages 对于所有可以应用的选项。

SO网友:Ronnie Stevens

将其重写为函数中的函数。php您需要添加全局$post;

function page_summary() {
    global $post;
    $args = array(
        \'post_type\'      => \'page\',
        \'posts_per_page\' => -1,
        \'post_parent\'    => $post->ID,
        \'order\'          => \'ASC\',
        \'orderby\'        => \'menu_order\'
    );


    $parent = new WP_Query( $args );

    if ( $parent->have_posts() ) : 

        while ( $parent->have_posts() ) : $parent->the_post(); ?>
        <div id="parent-<?php the_ID(); ?>" class="parent-page">

        <h1><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h1>
        </div>
    <?php
         endwhile; 

    endif; 
    wp_reset_postdata(); 
}

SO网友:Yuval A.

虽然OP特别要求wp_query, 这同样有效:

get_pages(\'child_of=\'.$post->ID.\'&sort_column=menu_order\');

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post