条件性:如果是页面,则为所有子页面

时间:2013-06-18 作者:user1374796

我目前试图实现的是使用一个模板和条件语句在特定页面上显示特定菜单,如下所示:

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\'
        ));
}
由于所有这些页面都使用相同的模板,我需要一些允许相关子菜单显示在相关页面上的内容,这很好。但我现在的问题是,这两页donateabout (后面还有更多)有子页面,是否可以在所有子页面上显示相关菜单?因此,如果您在“捐赠”页面,或是“捐赠”页面的孩子,将显示“捐赠”菜单等。

1 个回复
最合适的回答,由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相匹配。

结束

相关推荐

第119行出现致命错误wp-settings.php

更新后收到此错误消息:警告:require(/home/thomwhite/wparch.com/wp includes/post template.php)[函数.require]:打开流失败:在/home/thomwhite/wparch中权限被拒绝。com/wp设置。php在线119致命错误:require()[函数.require]:无法打开required“/home/thomwhite/wparch。com/wp包含/发布模板。php\'(include\\u path=\'。:/usr/lo