我面临着一个特殊的问题:一旦用户单击某个特定菜单,我如何更改导航栏的颜色?,i、 (我点击“联系人”菜单,导航栏的颜色变为灰色)。
我发现关于这个问题的文章很少,但只有一篇引起我注意:http://bit.ly/1Ku8hFT . 它简单地说,标题。php文件可以通过使用is\\u page()函数对其进行修改来实现这种效果。仅供参考,我还检查了该文件中的代码,并在下面列出了具体的代码行,我认为应该设置这些代码行的条件,以达到预期的效果。
<nav id="site-navigation" class="main-navigation top-navigation" role="navigation">
<?php
$anyMenu = get_terms( \'nav_menu\' ) ? true :false;
$menuSelect = get_theme_mod(\'my_theme_tho_header_menu_select\');
if ( $anyMenu && ( ( $menuSelect ) && ( $menuSelect !== \'none\' ) ) ) :
wp_nav_menu( array( \'menu\' => $menuSelect, \'container_class\' => \'header-menu\' ) );
elseif ( $anyMenu && ( !$menuSelect || ( $menuSelect == \'none\' ) ) ) :
$menu = get_terms( \'nav_menu\' );
$menu_id = $menu[0]->term_id;
wp_nav_menu( array( \'menu_id\' => $menu_id ) );
elseif ( !$anyMenu ) :
wp_nav_menu( array( \'theme_location\' => \'primary\', \'menu_class\' => \'nav-menu\' ) );
endif;
?>
</nav><!-- #site-navigation -->
我想知道是否有人有更好的主意来获得我想要的效果(比如插件,或者我是否需要查看另一个.php文件并添加一些代码,而不是这个文件,因为我不完全相信通过修改header.php我会得到结果。最后,我运行的Word Press版本是4.2.3。
我们将非常感谢您的所有意见、反馈和解决方案。
最合适的回答,由SO网友:William Turrell 整理而成
我真的不明白你想在PHP中做什么。
最简单的方法(在我看来,更优雅的解决方案,因为这是一个表象问题)是在CSS中实现这一点。默认情况下,WordPress在您的<body>
标签,例如:
<body class="single single-post postid-53 single-format-standard logged-in admin-bar">
Full list of classes
parent-pageid-{ID}
如果一个节中有多个子页,则此选项非常有用。
因此,在主题的CSS文件中,您可以根据可见的帖子、页面或类别来控制导航栏的颜色,例如。
.page-id-1 .top-navigation {
background-color: blue;
}
.page-id-2 .top-navigation {
background-color: green;
}
另请参见
question about custom CSS for your homepage.