如果我理解你想要什么,那么让它工作起来就比应该的要复杂得多。
$ancestors = array();
$ancestors = get_ancestors($post->ID,\'page\');
$parent = (!empty($ancestors)) ? array_pop($ancestors) : $post->ID;
if (!empty($parent)) {
$pages = get_pages(array(\'child_of\'=>$parent));
if (!empty($pages)) {
$page_ids = array();
foreach ($pages as $page) {
$page_ids[] = $page->ID;
}
$children = wp_list_pages("include=".$parent.\',\'.implode(\',\',$page_ids)."&echo=1");
echo \'<ul>\'.$children.\'</ul>\';
}
}
您必须获得所有页面的列表,并将其传递到
include
参数
The basic technique is listed in the Codex. 事实上,上述内容几乎是复制品。
那会给你current_page_ancestor
在所有祖先页面和current_page_parent
仅在直接父级上。这应该足够了。
如果您注意到我在页面列表中包含了顶级父级。您的代码有时只会这样做。我不知道这是不是故意的,但我把它包括进去了。您应该能够添加或删除该页面,以匹配所需的任何逻辑。