我目前试图实现的是使用一个模板和条件语句在特定页面上显示特定菜单,如下所示:
if (is_page(\'donate\')){
wp_nav_menu(array(
\'menu\' => \'donate\',
\'container\' => false,
\'menu_class\' => \'side-menu\'
));
} elseif (is_page(\'about-us\')) {
wp_nav_menu(array(
\'menu\' => \'about\',
\'container\' => false,
\'menu_class\' => \'side-menu\'
));
}
由于所有这些页面都使用相同的模板,我需要一些允许相关子菜单显示在相关页面上的内容,这很好。但我现在的问题是,这两页
donate
和
about
(后面还有更多)有子页面,是否可以在所有子页面上显示相关菜单?因此,如果您在“捐赠”页面,或是“捐赠”页面的孩子,将显示“捐赠”菜单等。
最合适的回答,由SO网友:s_ha_dum 整理而成
使用get_ancestors
要获取页面父级,请检查该值,而不是检查名称。
$ancestors = array();
$ancestors = get_ancestors($post->ID,\'page\');
$parent = (!empty($ancestors)) ? array_pop($ancestors) : $post->ID;
if (!empty($parent)) {
switch ($parent){
case 1 :
// menu for parent page ID 1
break;
case 2 :
// menu for parent page ID 2
break;
}
}
等等。您的数字需要与父页面的ID相匹配。