我想在自定义帖子类型下的所有帖子显示在我的网站首页上。这本身很容易做到,但是我找不到正确构造它的方法。我想以这种方式显示信息:
Parent Page
- Child Page
[Meta data from above child]
- Child Page
[Meta data from above child]
以下内容与我所需要的内容很接近,但它只显示了所有页面,父母和孩子。我需要将它们归类为以下类别:
<?php
$arr_query_args = array(
'numberposts' => -1,
'post_type' => 'tours',
'orderby' => 'title',
'order' => 'ASC',
);
$arr_posts = get_posts( $arr_query_args );
global $post;
foreach( $arr_posts as $this_post ) { ?>
<?php $museum = get_post_meta( $this_post->ID, 'tour_museum', true ); // The museum ?>
<?php $permalink = get_permalink($this_post->ID); // Get the post's permalink ?>
<?php $parent_title = get_the_title($this_post->post_parent); // Post parent title ?>
<?php $parentId = $this_post->post_parent; $linkToParent = get_permalink($parentId); // Post parent URL ?>
<li class="<?php echo $parent_title; ?>">
<a href="<?php echo $linkToParent; ?>"><?php echo $parent_title; ?></a>
<ul class="children">
<li><a href="<?php echo $permalink; ?>"><?php echo $this_post->post_title ?></a></li>
</ul>
<small><?php echo $museum; ?></small>
</li>
<?php } ?>
我已经四处张望,已经测试了几件事,但是无法正确构造该结构。我不需要父页面或子页面的内容,仅需要标题,永久链接和一些元数据。谢谢!
答案 0 :(得分:0)
您获取帖子的方式,无论父级是谁,它都会获取所有帖子,因此,为了实现分层显示,可以使用以下解决方案:
post_parent => 0
函数中设置WP_Query
来获取顶级父母例如
$arr_query_args = array(
'numberposts' => -1,
'post_type' => 'tours',
'orderby' => 'title',
'order' => 'ASC',
'post_parent' => 0
);
$parent_posts = get_posts( $arr_query_args );
post_parent => $parent->ID
函数中设置WP_Query
来使用那些父母的ID来获取他们的孩子例如
while($parent_posts->have_posts()): $parent_posts->the_post();
$arr_query_args_child = array(
'numberposts' => -1,
'post_type' => 'tours',
'orderby' => 'title',
'order' => 'ASC',
'post_parent' => get_the_ID()
);
$child_posts = get_posts( $arr_query_args_child );
// loop for child post here and fetch meta data etc.
endwhile;
get_post_meta
函数获取相关元数据。使用上述方法,您应该能够实现所需的输出。