我正在使用下面这段代码突出显示我全球导航中的“活动”菜单项。
<?php
$path = $_SERVER['PHP_SELF'];
$page = basename($path);
$page = basename($path, '.php');
?>
<ul id="nav">
<li class="home"><a href="index.php">Home</a></li>
<li <?php if ($page == 'search') { ?>class="active"<?php } ?>><a href="#">Search</a></li>
<li <?php if ($page == 'help') { ?>class="active"<?php } ?>><a href="help.php">Help</a></li>
</ul>
一切都很好,但在几页上,我在全局页面中有第二个子菜单(侧边栏菜单)。
我基本上需要在某种程度上将一个OR类型的语句添加到php中,但我不知道如何。
我的意思是:
<li <?php if ($page == 'help') OR ($page == 'help-overview') OR ($page == 'help-cat-1') { ?>class="active"<?php } ?>><a href="#">Search</a></li>
谢谢!
答案 0 :(得分:2)
你可以这样做:
<li <?php echo ($page == 'help' || $page == 'help-overview' || $page == 'help-cat-1' ? 'class="active"' : ''); ?>><a href="#">Search</a></li>
或者你可以使用in_array()
函数,我认为这个函数更好:
<li <?php echo ($page == in_array('help', 'help-overview', 'help-cat-1') ? 'class="active"' : ''); ?>><a href="#">Search</a></li>
答案 1 :(得分:1)
我知道这不是你要问的但是我建议你使用简单的css:)
ul#nav a.active, ul#nav a:active {
color: green;
background: red;
}
答案 2 :(得分:0)
您可以使用约定来查找基页或父页面:
$page = explode("-", $page)[0]; # should return 'help' for all help pages
<li <?php if ($page == 'help') { ?>class="active"<?php } ?>><a href="#">Search</a></li>
这意味着您在命名页面时需要使用约定<parent_page>-<sub_page>
。