我正在寻找设置列表项的currentmenu类的最佳方法, 以便向用户显示使用php选择的当前活动菜单。
我已将html / css站点移至WordPress, 但最初将我的所有代码都存储在index.html文件中, 该文件由sidemenu div和jQuery处理组成, 可在活动菜单选择之间进行切换。
我最初在index.html中具有的代码是:
使用Superfish的侧边栏菜单的HTML代码:
<div id="sidebar">
<ul id="themenu" class="sf-menu sf-vertical">
<li><a href="index.php" class="topm currentMenu nosub">Home</a></li>
<li><a href="about-us.php" class="topm nosub">About Us</a></li>
</ul>
</div>
用于切换当前活动菜单的jQuery代码:
$("ul.sf-menu li a").click(function() {
$("ul.sf-menu li a").not(this).removeClass("currentMenu");
$(this).toggleClass("currentMenu");
});
因为所有这些都在一个index.html文件中, 所以一切正常。
现在, 使用WordPress, 将我的侧边栏菜单div移到其自己的sidebar.php文件中, 除此之外, 已经为about-us.php创建了单独的自定义wp页面, 并在sidebar.php文件中进行了调用, 问题发生之后, 这就是我想确定解决问题的最佳方法的地方。
问题是, 当用户第一次进入该站点时, 将触发index.php文件, 并且基于以上内容, “主页”菜单当前是基于默认类值的活动菜单。但是, 当用户按下”关于我们”菜单选项, 然后调用我创建的about-us.php页面时, 该页面也调用sidebar.php文件, 当前活动菜单仍然是”主页”菜单选项, 即不正确。
我现在可以将”关于我们”菜单选项设置为活动菜单, 即是否为”关于我们”设置了”当前菜单”类, 因为我不确定如何在php中实现此功能, 因为我的jQuery切换代码不再起作用?
我提议使用其自己的wordpress页面模板(称为sidebar.php文件)来具有其他菜单选项, 因此需要将这些菜单选项设置为class =” currentMenu”。
#1
听起来好像你在寻找wordpress条件标签。例如:
<div id="sidebar">
<ul id="themenu" class="sf-menu sf-vertical">
<li><a href="index.php" class="topm <?php if (is_home()) { echo "currentMenu"; } ?> nosub">Home</a></li>
<li><a href="about-us.php" class="topm <?php if (is_page('about-us')) { echo "currentMenu"; } ?> nosub">About Us</a></li>
</ul>
</div>
导航的第一行检查当前页面是否为主页, 如果是, 它将打印菜单所需的标签。第二行检查页面是否为” about-us”页面, 其中” about-us”为post_name(子句)。你也可以使用帖子ID。有关可用相关标签的更多示例/参考, 请查看下面的我的链接。希望这可以帮助。
参考:http://codex.wordpress.org/Conditional_Tags
参考:http://codex.wordpress.org/Dynamic_Menu_Highlighting
要在标准PHP中做到这一点, 避免使用wordpress作为平台, 你可以执行以下操作, 或者直接为特定页面分配变量:
<?php
$path = $_SERVER['PHP_SELF']; // get the path to the file
$page = basename($path); // grab the filename
$page = basename($path, '.php'); // remove the .php extension
?>
<div id="sidebar">
<ul id="themenu" class="sf-menu sf-vertical">
<li><a href="index.php" class="topm <?php if ($page == "index") { echo "currentMenu"; } ?> nosub">Home</a></li>
<li><a href="about-us.php" class="topm <?php if ($page == "about-us") { echo "currentMenu"; } ?> nosub">About Us</a></li>
</ul>
</div>
#2
为了在侧边栏菜单(或任何菜单)中向当前页面添加特定的类, 你需要阅读WordPress文档中突出显示的动态菜单。你也可以尝试使用dTabs这样的插件, 使自己的工作更轻松。
评论前必须登录!
注册