子页面上的导航高亮显示已删除(wordpress)


Navigation Highlight removed on subpages (wordpress)

单击此网页上的导航时,nav元素将保持高亮显示。如果导航到其中一个内部页面,高亮显示将消失。我们如何才能在该页面的子页面上保留突出显示?

http://www.allinsure.ca/services/-尝试单击子页面;"服务"上的灰色突出显示已不存在。适用于包含子页面的所有页面。

有什么想法吗?我还注意到,面包屑并没有直接返回到上一页,而是链接到Portfolio Categories。

也许有一种方法可以说"当这个页面被选中时,突出显示这个导航项目。"

我们使用的是Cherry Framework。That和wordpress都是最新的。

谢谢大家!

看看类"当前页面祖先",当您在子页面上时,它是由wordpress设置到您的主导航中的。

所以你可以用纯css来解决这个问题。

只需将主样式.css中的这一部分从:更改

.header .nav__primary .sf-menu li.current-menu-item a, 
.header .nav__primary .sf-menu .sfHover a,     
.header .nav__primary .sf-menu .current-menu-parent a{
   background: none repeat-x scroll 0 0 #58585a;
   box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
   color: #fff;
}

至:

.header .nav__primary .sf-menu li.current-menu-item a, 
.header .nav__primary .sf-menu .sfHover a,     
.header .nav__primary .sf-menu .current-menu-parent a,
.header .nav__primary .sf-menu li.current-page-ancestor a{
   background: none repeat-x scroll 0 0 #58585a;
   box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
   color: #fff;
}

我刚刚注意到"当前页面祖先"类只适用于页面类型,而不适用于自定义类型。当你在一个档案条目上时,要突出显示服务页面,这有点复杂。您可以通过使用过滤器nav_menu_css_class来实现它。

function _nav_menu_css_class($classes)
{
    switch (get_post_type()){
    case 'portfolio':
        $idOfServicePage = 1;
        if (in_array('menu-item-'.$idOfServicePage, $classes)){
            $classes[] = 'current-menu-item'; // or current-page-ancestor
        }
        break;
    }
    return $classes;
}
add_filter('nav_menu_css_class', '_nav_menu_css_class');

很抱歉,我现在无法检查我的代码,但我遇到了类似的问题,可以通过使用nav_menu_css_class过滤器来解决。