按名称显示页面的子项

时间:2015-09-20 作者:user80946

我有一个这样的页面

phyiscs
---mechanics
---statics
---Universe

chemistry
---Reaction
---Equilibrium

biology
---Human body
---Polination
我想像这样展示page物理、化学、生物的孩子们

<div class="phy-child">
   <h1>Mechanics</h1>
   <h1>statics</h1>
   <h1>Universe</h1>
</div>

<div class="chem-child">
   <h1>Reaction</h1>
   <h1>Equilibrium</h1>
</div>
生物学也是如此

我尝试使用wordpress查询,但不知道应该在哪里插入物理等内容。。

<?php

$args = array(
    \'post_type\'      => \'page\',
    \'posts_per_page\' => -1,
    \'depth\'          =>  2,
    \'sort_column\'  => \'post_name\',
    \'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>

        </div>

    <?php endwhile; ?>

<?php endif; wp_reset_query(); ?>
有可能吗?谢谢

1 个回复
SO网友:Robert hue

您需要在while循环之前pur div容器。给你。下面是修改后的代码,容器将具有父页面slug类。

<?php

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


$parent = new WP_Query( $args );

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

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

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

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

    <?php endwhile; ?>

  </div>

<?php endif; wp_reset_query(); ?>

相关推荐

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

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