WordPress:我摆脱了第二个“ home”页面,但它不够好
题
我有一个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;
警告:
- 检查菜单div id的实际名称(此处显示 #nav )
- 嵌套的ul / li菜单结构(因此不止一个级别)将需要额外的代码来正确选择正确的 a 元素。
- 如果要更改菜单链接,请不要使用位置选择技术,请使用其他挂钩,例如指向主页/首页的链接的href值。
- if(window.location.href ==' http://www.example.com/如果涉及更多变体(https,多个子域等),则')部分可能需要是正则表达式。 醇>
其他提示
您可以在管理&gt;中将静态页面设置为首页。设置&gt;以管理员身份登录后阅读面板。
可以在此处找到关于此主题的Wordpress手册条目。