个性化阅读
专注于IT技术分析

无法在WordPress网站的PHP中设置列表项类

我正在寻找设置列表项的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这样的插件, 使自己的工作更轻松。

赞(0)
未经允许不得转载:srcmini » 无法在WordPress网站的PHP中设置列表项类

评论 抢沙发

评论前必须登录!