无法在PHP中为WordPress站点设置List Item类

时间:2010-08-19 00:48:13

标签: php jquery wordpress wordpress-theming

我正在寻找设置列表项的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文件中,除此之外,为side-..pp文件中的about-us.php创建了单独的自定义wp页面,我发生了以下问题,我想确定解决问题的最佳方法。

问题是,当用户第一次进入站点时,会触发index.php文件,并且根据上述内容,“Home”菜单当前是基于默认类值的活动菜单。但是当用户按下“关于我们”菜单选项,然后调用我创建的about-us.php页面时,也会调用sidebar.php文件,当前活动菜单仍然是“主页”菜单选项,这是不正确。

我现在可以将“关于我们”菜单选项设置为活动菜单,即现在为“关于我们”设置“CurrentMenu”类“因为我不知道如何在php中处理此问题,因为我的jQuery不再切换代码作品?

我建议使用自己的wordpress页面模板调用sidebar.php文件,这样就需要将这些菜单选项设置为class =“currentMenu”。

2 个答案:

答案 0 :(得分: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(slug)。您也可以使用帖子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>

答案 1 :(得分:0)

为了将特定类添加到侧栏菜单(或任何菜单)中的当前页面,您需要阅读WordPress文档中的动态菜单突出显示。您还可以尝试使用dTabs这样的插件,让自己更轻松。