将静态页面设置为首页不会突出显示菜单链接,这是问题的核心。
所以,你可以服务器端自定义(黑客)的wp_list_pages功能,但这里有一个客户端的选项,如果你选择:
使用jQuery库(方便它与WP 2.2 +),呼叫:
wp_enqueue_script('jquery');
或加载自己的版本:
wp_enqueue_script('jquery', '/path/to/your/jquery.js', false, '1.2.1');
现在加一点JA的vascript在你的模板,是这样的:
if(window.location.href == 'http://www.example.com/'){ //checks for root path - "home" ('http://www.example.com/?p=7' or 'http://www.example.com/2008-10/7' will not match)
jQuery('#nav > ul > li > a:first').addClass('current_page_item');
}
的一:第一部分呈现在你的菜单中的第一个环节是家用/头版链接。如果不是,请通过href值或位置进行选择。这是一个被现在的位置:
~~~~~~~~~~~~~~~
jQuery(jQuery('#nav > ul > li > a')[3]).addClass('current_page_item'); //add 'current_page_item' css class so menu item highlighting occurs
例子:
< DIV ID = “导航” >
<ul>
<li> <a>链接0 < /一个> < /锂>
<利> <一个>链接1 < /一个> < /锂>
<利> <一个>链路2 < /一个> < /锂>
<利> <a>链接3 </a > </li >
<利> <一个>链路4 < /一个> < /锂>
<利> <一个>链路5 < /一个> < /锂>
</UL >
</div >
注意事项:
- 检查你的菜单DIV ID(此处显示#nav)
- 嵌套的UL /李菜单结构(使多个级别的实际名称)将需要额外的代码来正确选择正确的元素。
- 如果菜单链接将发生变化,请勿使用位置选择技术,请使用其他挂钩,如链接到主页/首页的href值。
- if(window.location.href =='http://www.example.com/')部分可能需要是一个正则表达式,如果涉及更多变体(https,多个子域等)。
感谢您的好回答。虽然简单地看,但我认为黑客一个新的wp_list_pages函数可能不那么黑客。如果我这样做,我也会发布我的代码。或者,也许我会利用你的答案进入JQuery :) – 2008-10-20 22:39:18