0

我有一个 WordPress 站点 (2.6.2),其中我将主页设置为静态页面,而不是普通的帖子页面。此页面的 ID 为 2,因此在 WordPress 模板中我将其更改wp_list_pages为如下所示:

<?php wp_list_pages('exclude=2&title_li=&depth=1' ); ?>

这很好用,但是现在主页在被选中时不会“亮起”(因为实际上它是 page_id 2 被选中,并且它没有显示在菜单中)。有什么简单的方法可以解决这个问题吗?

如果不是,概括地说,解决这个问题的难点是什么?制作我自己的wp_list_pages函数版本?

谢谢!

4

2 回答 2

3

将静态页面设置为首页不会突出显示菜单链接,这是问题的核心。

因此,您可以在服务器端自定义(破解) 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>


注意事项:

  1. 检查您的菜单 div id 的实际名称(#nav显示在这里)
  2. 嵌套的 ul/li 菜单结构(因此不止一层)将需要额外的代码来正确选择正确元素。
  3. 如果菜单链接要改变,不要使用位置选择技术,使用另一个钩子,比如指向主页/首页的链接的 href 值。
  4. 如果涉及更多变体(https、多个子域等) ,if(window.location.href == ' http://www.example.com/ ')部分可能需要是正则表达式。
于 2008-10-20T22:23:58.423 回答
2

以管理员身份登录后,您可以在“管理”>“设置”>“阅读”面板中将静态页面设置为首页。

可以在此处找到有关此主题的 Wordpress 手册条目。

于 2008-10-20T21:06:42.557 回答