列出具有指定ID的页面的父级或祖父级的所有帖子

时间:2016-10-03 作者:R Reveley

我在页面模板中使用以下代码

<?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, 
但事实并非如此简单。

2 个回复
SO网友:Tomasz Bakula

您可以使用get_pages( array( \'child_of\' => page_id ) ) 获取所有子页。

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();

相关推荐

如何在WooCommerce总价金额->ProductPages下增加保证金

我对ProductPage上的woocommerce价格金额有两个问题。第一个问题:我想在总价格金额下增加更多保证金,并按下“添加到卡”按钮我怎样才能做到这一点?(示例见下图)第二我只想显示总价。现在我得到了可变产品的最低价格,显示在产品标题下面,以及总价格金额。我只想显示总价。已经谢谢你了!