我有一个自定义帖子页面。它们显示在一个带有列表的页面中,您可以选择一个页面,当您到达该页面时,我需要显示该页面的子页面。
以下是迄今为止我制作的第一页自定义帖子:
<select name="select_page" id="select_page" class="select_page" data-mini="true" data-theme="c">
<?php
$pageId = 5;
$subpages = get_pages( array(
\'child_of\' => $pageId,
\'sort_order\' => \'asc\',
\'sort_column\' => \'menu_order\') );
?>
<?php if($post->post_parent) {?>
<option value="<?php echo get_page_link($pageId) ?>" >Startpage</option>
<?php } else {?>
<option value="<?php echo get_page_link($pageId) ?>" selected="selected">Startpage</option>
<?php } ?>
这就是列表,我需要显示子页面中的子页面,并在列表中显示它。
<?php
foreach($subpages as $page) { $i++;
$pages[] += $page->ID;
?>
<?php if($page->post_title == get_the_title()) {?>
<option value="<?php echo get_page_link($page->ID) ?>" selected="selected"><?php echo $i.\'. \'.$page->post_title ?></option>
<?php } else {?>
<option value="<?php echo get_page_link($page->ID) ?>"><?php echo $i.\'. \'.$page->post_title ?></option> <?php } ?>
<?php }?>
</select>
我的问题是:
How can I show subpages of that subpage ?
最合适的回答,由SO网友:Mridul Aggarwal 整理而成
问题就在这里
$subpages = get_pages( array(
\'child_of\' => $pageId,
\'sort_order\' => \'asc\',
\'sort_column\' => \'menu_order\') );
“child\\u of”参数还查询孙子和子代。改为使用“parent”参数,该参数将只查询直接子级。完成后,您将在foreach中再次使用相同的代码
foreach($subpages as $page) {
$subsubpages = get_pages( array(
\'parent\' => $page->ID,
\'sort_order\' => \'asc\',
\'sort_column\' => \'menu_order\') );
// use $subsubpages along with $page here
}
如果您想在级别上进一步降低,那么可能需要以递归函数的形式实现此逻辑