将静态页面设置为首页不会突出显示菜单链接,这是问题的核心。
因此,您可以在服务器端自定义(破解) wp_list_pages 函数,但如果您愿意,这里有一个客户端选项:
使用 jQuery 库(很方便它与 WP 2.2+ 一起提供),调用:
wp_enqueue_script('jquery');
或加载您自己的版本:
wp_enqueue_script( 'jquery', '/path/to/your/jquery.js', false, '1.2.1');
现在在您的模板中添加一些 javascript,例如:
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');
}
a:first部分假定菜单中的第一个链接是主页/首页链接。如果不是,请通过 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 </a > </li >
<li > <a >链接 1 </a > </li >
<li > <a >链接 2 </a > </li >
<li > <a >链接 3 </a > </li >
<li > <a >链接 4 </a > </li >
<li > <a >链接 5 </a > </li >
< /ul >
</div>
注意事项:
- 检查您的菜单 div id 的实际名称(#nav显示在这里)
- 嵌套的 ul/li 菜单结构(因此不止一层)将需要额外的代码来正确选择正确的元素。
- 如果菜单链接要改变,不要使用位置选择技术,使用另一个钩子,比如指向主页/首页的链接的 href 值。
- 如果涉及更多变体(https、多个子域等) ,if(window.location.href == ' http://www.example.com/ ')部分可能需要是正则表达式。