如何在循环内循环(显示子对象,然后显示子对象)

时间:2012-06-03 作者:Zach Nicodemous

我正在尝试为WordPress开发一个查询,它将允许我显示一个只包含标题的子页面列表,然后在每个子页面标题下显示一个孙子(子页面的子页面)页面标题及其内容的列表。

例如,输出应该是这样的:

<ul>
  <li>
    <h1>Page 1</h1>
    <ul>
      <li>
        <h2>Child Page 1</h2>
      </li>
      <li>
        <h2>Child Page 2</h2>
        <ul>
          <li>
            <h3>Grandchild</h3>
            <p>Hello, welcome to this grandchild page</p>
          </li>
          <li>
            <h3>Grandchild #2</h3>
            <p>Hello, welcome to this grandchild page</p>
          </li>
        </ul>
      </li>
      <li>
        <h2>Child Page 3</h2>
      </li>
    </ul>
  </li>
  <li>
    <h1>Page 2</h1>
  </li>
</ul>
它需要动态完成,这意味着我不想在查询中指定帖子ID号。

我尝试使用一个标准的WordPress查询,然后在第一个查询中嵌套第二个查询-这失败了。

此外,我还尝试修改此处显示的代码:http://wordpress.org/support/topic/query-child-pages-of-a-current-page-and-loop-through-each-child-page

最后,我还尝试修改此代码:

<?php if ( have_posts() ) {  while ( have_posts() ) { the_post(); $thispage=$post->ID; }} ?>
<?php $childpages = query_posts(\'post_per_page=3&orderby=menu_order&order=asc&post_type=\' . get_post_type( $post->ID ) . \'&post_parent=\'.$thispage);
    if($childpages){ /* display the children content  */
            foreach ($childpages as $post) :
            setup_postdata($post); ?>
          <li><a class="" href="#<?php echo($post->post_name) ?>">
            <?php the_title(); ?>
            </a></li>
          <?php
      endforeach;
     } ?>
我一天多以来一直在努力让这项工作奏效,现在我真的只是在兜圈子。

非常感谢您的帮助。

1 个回复
SO网友:felipelavinz

尝试以下操作:

<?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
        <div class="parent-post">
            <?php the_title(\'<h2>\', \'</h2>\'); ?>
            <?php $children = new WP_Query( array(\'post_type\' => \'page\', \'post_parent\' => get_the_ID() )); ?>
            <?php if ( $children->have_posts() ) : ?>
            <ul class="post-children">
                <?php while ( $children->have_posts() ) : $children->the_post(); ?>
                    <li><?php the_title(\'<h3>\', \'</h3>\'); the_content(); ?></li>
                <?php endwhile; ?>
            </ul>
            <?php endif; ?>
    <?php endwhile; ?>
<?php endif; ?>

结束

相关推荐

Orderby不适用于使用ID数组的QUERY_POST

我有一个ID数组,我发送给query\\u posts以获取帖子(这很好),但它似乎总是把附件(562)放在最后,即使它是最新的。还尝试了title和ASC vs DESC,但它总是最后一个?$slide_args = array( \'post_type\' => \'attachment\', \'post_status\' => \'inherit\', \'fields\' => \'ids\',