这可以在单个查询中完成:
$parent_only = new WP_Query( array(
\'post_parent\' => 0,
) );
如果您希望在循环中(或在返回的请求上)包含特定页面(例如)的所有子级
TRUE
对于
is_singular()
), 使用
get_the_ID()
作为的参数
post_parent
.
编辑(在更新的问题中看到完整的循环后)
get_page_template()
函数应用于
template_include
筛选器回调。当你看到
~/wp-includes/template-loader.php
and its internals, 然后您将看到以下内容:
is_page() && $template = get_page_template()
此函数不适用于模板内部。如果要包括模板部件,请坚持
get_template_part()
相反
假设您要构建一个页面列表,其中每个子页面都列在父页面的下方,每个子页面都列在父页面的下方。这可以通过wp_list_pages()
Source:
<ul>
?>
wp_list_pages( array(
\'title_li\' => sprintf(
\'<h2>%s</h2>\'
__( \'Pages sorted by parent\', \'your-textdomain\' )
),
) );
<?php
</ul>
现在,这将只输出一个页面列表。仔细查看参数列表时,可以使用:
child_of
和
echo
以及:
// Get all parent pages:
$pages = get_pages( array(
\'number\' => 0, // get *all* pages
) );
// Container:
$output = array();
// Loop and fetch
foreach ( $pages as $page )
{
$output[] = wp_list_pages( array(
\'title_li\' => \'...\',
\'echo\' => false,
\'child_of\' => $page->ID,
) );
}
// Build the output:
foreach ( $output as $p )
// etc.
上述示例只是为了澄清内部情况。当然,您可以简单地调整
depth
参数,所以
wp_list_pages()
获取家长及其子女以构建无序的HTML列表。
因此,正确的方法是通过必要的depth
如果您需要定制订单,请使用指定给walker
-钥匙
总结-core会根据默认值为您执行此操作