在尝试了以下参考文献后我没有运气:http: //codex.wordpress.org/Function_Reference/wp_list_pages#List_Sub-Pages
我从另一个资源中找到的最需要做的事情是依赖于页面 ID:
<?php
$parent = 64;
$args=array(
'child_of' => $parent
);
$pages = get_pages($args);
if ($pages) {
$pageids = array();
foreach ($pages as $page) {
$pageids[]= $page->ID;
}
wp_list_pages($args);
}
?>
虽然它会起作用,但我使用的模板可以在不同的页面中使用。因此,如果显示的页面是孙子或其中一个孩子,我需要显示孙子父母(或实际上是孩子 1、孩子 2 或孩子 3)的整个列表。
经过多次尝试,我终于弄明白了。我确实回去并决定制作导航菜单,并在我希望导航菜单出现的地方使用这样的 if 语句。
<?php
if ( is_page( 'child-1' ) || in_array( 3, get_post_ancestors($post->ID) ) ) {
menu2_nav();
} elseif ( is_page( 'child-2' ) || in_array( 4, get_post_ancestors($post->ID) ) ) {
menu3_nav();
} else {
}
?>
因此,无论孩子 1 或孩子 2 是否使用相同的模板,例如 template-green,都会根据列出的父页面显示正确的导航菜单。此外,如果您在子页面或该子页面中的子页面上,则无论所选导航菜单显示多深。相同的代码将用于多个模板,例如 template-blue、template-red 等。