WordPress:我摆脱了第二个“ home”页面,但它不够好

StackOverflow https://stackoverflow.com/questions/219870

  •  03-07-2019
  •  | 
  •  

我有一个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 函数版本?

谢谢!

有帮助吗?

解决方案

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

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

示例:

  

&lt; div id =&quot; nav&quot; &GT;

     

&lt; ul&gt;
   &lt; li&gt; &lt; a&gt;链接0&lt; / a&gt; &lt; / li&gt;
   &lt; li&gt; &lt; a&gt;链接1&lt; / a&gt; &lt; / li&gt;
   &lt; li&gt; &lt; a&gt;链接2&lt; / a&gt; &lt; / li&gt;
  &lt; li&gt; &lt; a&gt;链接3&lt; / a&gt; &lt; / li&gt;
   &lt; li&gt; &lt; a&gt;链接4&lt; / a&gt; &lt; / li&gt;
   &lt; li&gt; &lt; a&gt;链接5&lt; / a&gt; &lt; / li&gt;
   &lt; / ul&gt;

     

&lt; / div&gt;


警告:

  1. 检查菜单div id的实际名称(此处显示 #nav
  2. 嵌套的ul / li菜单结构(因此不止一个级别)将需要额外的代码来正确选择正确的 a 元素。
  3. 如果要更改菜单链接,请不要使用位置选择技术,请使用其他挂钩,例如指向主页/首页的链接的href值。
  4. if(window.location.href ==' http://www.example.com/如果涉及更多变体(https,多个子域等),则')部分可能需要是正则表达式。

其他提示

您可以在管理&gt;中将静态页面设置为首页。设置&gt;以管理员身份登录后阅读面板。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top