按层次顺序显示自定义类型的帖子

时间:2012-01-17 作者:Alex

我有自定义字段“People”,我有父页(帖子类型)和子页(帖子类型)。这是我的代码:

<?php 
 $args = array( 
\'post_type\'=> \'people\',
\'posts_per_page\' => -1,
);
$loop = new WP_Query( $args );
    while ( $loop->have_posts() ) { ?>
    <?php $loop->the_post();?>
     <div class="title">    
         <a href="<?php the_permalink();?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
     </div>
<?php } ?>
我需要按层次顺序显示此自定义帖子类型。例如:

First parent post type
   - first child of first parent post type
   -second child of first parent post type
Second parent post type
   -first child of second parent post type
但默认情况下,此帖子在发布时显示在other中。有什么想法,如何解决这个问题?

谢谢大家。

2 个回复
SO网友:Evan Yeung

第1部分要循环浏览父页和子页,您需要一个递归函数。幸运的是,goldenapples写了一篇:https://wordpress.stackexchange.com/a/13678/1878

第二部分解决了这个问题,但您仍然希望能够对其进行排序,因此WordPress允许我们设置页面顺序。如果进入编辑页面屏幕,您将在属性框下看到一个订单点。您还可以在快速编辑屏幕中设置顺序。Page Quick Edit Screen

然后我们需要告诉orderby的循环:

<?php 
$args = array( 
    \'post_type\'=> \'people\',
    \'orderby\' => \'menu_order\',
    \'posts_per_page\' => -1 );
?>

SO网友:AlxVallejo

你可以保留你的论点

$args = array(
  \'post_type\'=>\'people\',
  \'title_li\'=> __(\'People\')
);
wp_list_pages( $args );
post_type 是一个可接受的参数,将为您处理递归。

结束

相关推荐