我的一些页面有一些自定义帖子类型的“帖子”作为子帖子。在这些页面上,我想列出所有子帖子。因此,我有以下代码:
<?php
$page_id = get_queried_object_id();
function subpage_peek($parent_id) {
// reset the query, just to be sure
wp_reset_postdata();
//query subpages
$args = array(
\'orderby\' => \'menu_order\',
\'sort_order\' => \'ASC\',
\'hierarchical\' => 0,
\'post_parent\' => $parent_id,
\'post_type\' => \'kuenstler\'
);
$subpages = new WP_query($args);
// create output
if ($subpages->have_posts()) :
$output = \'<ul>\';
while ($subpages->have_posts()) : $subpages->the_post();
$output .= \'<li><a href="\'.get_permalink().\'">\'.get_the_title().\'</a></li>\';
endwhile;
$output .= \'</ul>\';
else :
$output = \'<p>No subpages found.</p>\';
endif;
// reset the query
wp_reset_postdata();
// return something
return $output;
}
echo subpage_peek($page_id);
?>
为什么这会输出自定义帖子类型的所有帖子?
更新#1这是我的解决方案,它可以工作:
<?php
wp_reset_postdata();
global $post;
$post = get_post(get_the_id());
$child_posts = types_child_posts(\'kuenstler\');
foreach ($child_posts as $child_post) {
echo \'<li><a href="\'.get_permalink($child_post->ID).\'">\'.get_the_title($child_post->ID).\'</a></li>\';
}
?>
如果我当然希望上面的代码出现在内容正文中,但也希望出现在列出所有这些子帖子的几个子导航中,有人知道我必须使用哪种重置吗?目前,主循环(见上文)工作正常,但在我的四个子导航中,没有列出第x页的子页面,而是列出了主循环的子页面。