2010-08-19 25 views
0

真的很感谢您的人们的建议,以设置一个列表项目的currentmenu类的最佳方式,以显示用户当前选择使用PHP的活动菜单。无法设置列表项目类别在PHP为WordPress网站

我已将我的html/css网站移至WordPress,但最初将我所有的代码放入了我的index.html文件中,该文件由sidemenu div和jQuery处理组成,以在活动菜单选项之间切换。

代码我本来在我的index.html是:

使用快鱼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文件被触发,并且基于上述情况,“Home”菜单当前是基于默认类值的活动菜单。但是当用户按下“关于我们”菜单选项,然后调用我创建的about-us.php页面,该页面也调用sidebar.php文件时,当前活动菜单仍然是“主页”菜单选项,即不正确。

人们可以协助如何使“关于我们”菜单选项现在的活动菜单,即现在设置为“关于我们”的类“CurrentMenu”,因为我不知道如何解决这个在PHP中作为我的jQuery的拨动代码不再起作用?

我propsing有自己的WordPress的页面模板调用的sidebar.php文件,因此需要具有设置为如类=“currentMenu”的菜单选项附加菜单选项。

我真的很希望有人可以从WordPress和非WordPress的角度来协助解决这个问题。谢谢

回答

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> 
+0

谢谢杰维斯的详细回复。今晚我回家时我会看这个。从性能的角度来看,只需要询问另一个查询,您是否可以看到您提供的WordPress和非WordPress解决方案的任何问题? – tonyf 2010-08-19 01:54:35

+0

他们都是大同小异的,即:既不确实增加任何性能问题的剧本,所以它几乎完全可以忽略不计。使用wordpress优于本土代码的好处是可以轻松添加新内容,而无需编写整个框架来处理CMS和发布方面。我可以更专注于设计并实现我需要的任何自定义代码,而不必担心所有基本的东西,我让wordpress为我处理。 如果我的解决方案适合你(我承诺)确保通过点击复选标记来接受它:) – Jervis 2010-08-19 03:03:51

+0

不用担心杰维斯 - 会做。再次感谢。 – tonyf 2010-08-19 03:11:50

0

为了在侧栏菜单(或任何菜单)中为当前页面添加特定的类,您需要阅读WordPress文档中的动态菜单高亮显示。你也可以尝试一下诸如dTabs这样的插件,让自己更容易。

+0

感谢卢克。我应该在我最初的问题中提到我使用的是Superfish菜单,但不知道这将如何适合dTabs。但只是想知道,如果WordPress没有涉及,这将如何在PHP中完成? – tonyf 2010-08-19 01:17:42