我在页面模板中使用以下代码
<?php
$args=array(
\'post_parent\' => 27641,
\'post_type\' => \'page\',
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
获取产品列表页面的直接子页面列表。
如果我想要所有的子页面和所有的孙子,我该怎么办?我想列出子页面的子页面以及直接子页面。
显而易见的答案是:
\'post_ancestor\' => 27641,
或
\'post_grandparent\' => 27641,
但事实并非如此简单。
SO网友:disinfor
Tomasz的回答回答了这个问题,但对于那些在谷歌上搜索的人来说,这里有一些关于get_pages()
.
NOTE: 我会跳过WP_Query
, 除非您想直接修改和更改主查询,对于这个示例/问题,您真的不需要$args
// Gets the global post variable.
global $post;
// Get all the ancestors of page id 27641
$pages = get_pages( array( \'child_of\' => 27641 ) );
// Using $post because setup_postdata requires a reference to the global $post
// Loop through each post object in $pages
foreach ( $pages as $post ) : setup_postdata( $post ); ?>
// this is your loop. Because we setup_postdata, we can use loop functions like the_title, the_content, etc.
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
// This ends the loop
<?php endforeach;
// Reset the postdata and continue with your page.
wp_reset_postdata();