目前,您的代码几乎可以正常工作,但它会检查当前页面是否有父级,这对于第二级和第三级页面都是正确的。
WordPress为我们提供了get\\u祖先来检索任何层次对象类型的有序祖先数组:
get_ancestors( $object_id, $object_type );
所以我们可以使用
get_ancestors( $post->ID, \'page\' )
并计算元素,以帮助我们获得适合您导航的深度。
if($post->post_parent) {
$ancestors = get_ancestors( $post->ID, \'page\' );
if ( 1 == count( $ancestors ) ) {
echo \'<ul>\';
wp_list_pages(
array (
\'title_li\' => \'\',
\'sort_column\' => \'menu_order\',
\'child_of\' => $ancestors[0],
\'depth\' => 1
)
);
echo \'</ul>\';
}
if ( 2 == count( $ancestors ) ) {
echo \'<ul>\';
wp_list_pages(
array (
\'title_li\' => \'\',
\'sort_column\' => \'menu_order\',
\'child_of\' => $ancestors[1],
\'depth\' => 2
)
);
echo \'</ul>\';
}
}
您可以更巧妙地处理逻辑,例如从祖先数组中弹出最后一个元素,但为了清晰起见,我将其保留为详细内容。