WordPress 3.0 菜单功能支持二级菜单
可以说自带的导航菜单功能是 WordPress 3.0+ 中唯一执得让人眼睛一亮的功能了,在新做主题的过程中再一次让我眼睛亮了一亮,发现这个 WordPress 的导航菜单居然还支持二级菜单,当然要实现下拉的二级菜单功能,还是需要 jQuery 和 CSS 等的配合。下面简单介绍一下:
首先,要让你的主题支持 WordPress 3.0+,只需简单几步,把以下代码添加到 functions.php 中:
register_nav_menus(array(
'primary' => '导航菜单'
));
}
然后,在 header.php 中调用如下代码:
if(function_exists('wp_nav_menu')) {
wp_nav_menu(array('theme_location'=>'primary','menu_id'=>'nav','container'=>'ul'));
}
?>
这里就不详细介绍 wp_nav_menu() 的参数了,具体可以看看官方文档的介绍。接下来,就可以在 WordPress 后台控制面板的菜单中看到菜单选项了,只要拖动模块至一级菜单下就会形成二级菜单,甚至三级菜单,就像拖动小工具里的模块一样操作方便。如图:

根据以上操作步骤,可以打印出如下的 html:
<li><a href="">分类 1</a></li>
<li><a href="">分类 2</a></li>
<li><a href="">分类 3</a>
<ul class="sub-menu">
<li><a href="">分类 3.1</a></li>
<li><a href="">分类 3.2</a></li>
<li><a href="">分类 3.3</a></li>
</ul>
</li>
<li><a href="">分类 4</a></li>
</ul>
可以看到一个二级菜单的 DIV+CSS 的模型已经展现出来了,剩下的就是配上 CSS 和 jQuery,使其产生下拉菜单的效果。
jQuery 的话,我用的是 1.2X 版本的,精致小巧,处理一个二级菜单的下拉效果绝对够用了,这个必须在以下的执行脚本之前载入,这是代码的顺序问题。
执行的脚本也非常简单,如下:
jQuery(document).ready(function($) {
$('#nav li').hover(function() {
$('ul', this).slideDown(300)
},
function() {
$('ul', this).slideUp(300)
});
});
</script>
还有一些基本的 CSS:
a{text-decoration:none;}
#nav li{width:100px;line-height:30px;float:left;}
#nav li a{text-align:center;display:block;width:100px;background:#ccc;}
#nav li a:hover{background:#000;color:#fff;}
.sub-menu{display:none;}
当然,以上的样式只是最基本最简单的,更多花哨的效果留给大家去挖掘吧,我还特地做了一个 DEMO,我总结了一下这个二级导航菜单的优点:1、话说原生的就是最好的,既然 WordPress 支持导航菜单,又进一步支持二级甚至多级菜单,我们为什么不利用起来呢?2、可以毫无悬念地通过 W3C 验证,因为 DIV+CSS 部分是 WordPress 的,进一步说明第一点:原生的就是最好的。3、效果好,兼容性强。有缓慢下拉的效果,这是 jQuery 的一大特点,而且在 IE、Firefox、Chrome 等各浏览器下测试都可行。4、代码简洁。这个二级导航,如果真要算代码的话,也只有 jQuery 和那一小段执行脚本了吧,而且我想 jQuery 应该大多数博客都加载了,那一小段执行脚本还在乎吗?
-
JQuery 实现动感导航菜单2010年02月25日 -
Javascript 滑动导航菜单2010年02月23日 -
jQuery 水平拖动效果2011年03月4日 -
Wordpress 速度优化之 WP-PostViews 插件2011年02月9日
感谢分享,请问有没有办法让菜单代码不自动生成ul只生成LI标签,我的主题自带UL,CSS有点冲突,
为什么我的在后设置好之后,在主页显示不出来呢?
只能支持2级菜单吗,能让支持3级或者多级的菜单吗?
问题解决了。。谢谢了哈
唉,还是没整成,IE6下没有下拉,大神帮帮忙?
实在整不成下拉效果,博主帮看看整成这样了该咋办啊?先谢谢了!
呃。。。实在打不开你的网站,抱歉呐,等你的网站能打开时我再看吧
谢谢谢谢,对我很有用
不知道怎么弄。我在菜单栏目中设置了。为什么首页不显示
菜单里设置了,说明你的菜单功能已经开启了,首页不显示可能是因为在相应的文件里没有调用菜单,或者说调用出错了
今天试了一下,我的导航出现了重复
升级后的比较好用就算了饿`````
坦白说,WP3来了以后,我觉得更麻烦了,模板里面很多东西都变了
啊啊啊~~~看不到样子啦~~上次只看到帅帅的小张
升级后的3.0版本好用多了哦
看到图片终于明白3.0更新的东西了。那我还是2.9继续吧
哈哈我看到你的照片了
恩?恩?我这里没有照片啊
等会我找个地方贴上
http://www.budiao.biz/wp-content/uploads/2010/08/14.jpg
自己看看吧
隐藏下吧,还是不要公开啦。呵呵
OK
好奇啊……
好奇我也没办法,就万戈看见了他不让别人看了
蛮好,蛮好,蛮好
SJ调用可以不可以
已经测试,JQ好像有点问题,点开的下拉菜单会把其下的内容往下面挤(如果在二级菜单正下方有内容的话),你的演示的二级菜单下没有东西,所以看不出问题
你可以用z-index
#nav li ul{z-index: 9999;}
这样后依然不行,依然会把下面的东西挤下去,把z-index: 9999;加在其他地方也试过
这个z-index确实没有作用,下面的内容依然是往下跑的,不知道怎么解决?
俺们菜鸟是搞不定了
这个问题一直没有解决,博主现身说法一下!
#nav li ul{z-index:999;position:absolute;}z-index的基本用法是这样滴
再去折腾一下,千万不要还是不对啊,都已经折腾这段好多次了
兄弟,右侧的“qq联系图标”链接地址不对了:403 Forbidden。
恩,新换主机,还没有绑定子目录,呵呵
联系戈戈做广告呢,联系不到呀。
哦哈哈哈哈~Q我:101149488
很不错的效果
这个不错。。。
我介绍的错不了
用不用这么激动哦
我刚关了网页你就email来了
这应该是3.0增加的最明显有效的功能之一了。
WPYOU的官方代言人来了,欢迎呀
后排强力插入~~~
超出了我的理解范围。
绝对在你的理解范围之内
没啥多大用途。。。
对于我来说也没啥多大用处,还是直接HTML来的方便
我的博客貌似是没有加载jQuery 的..呵呵。我觉得50多KB的文件,不是一般的大啊..呵呵
如果网站开启了gzip的话,那也就没多少大啦
这个好,我要去整下我的
老万,在3.0的导航中,如果添加了某个链接,你知道咋样在新窗口打开不?
只针对一个链接,不是所有哦。
我可以想到的方法是用jquery在新窗口打开链接,嘿嘿
升级后会有不适应?我还要不要升级?没想好。
升吧,我是个别现象
唔..发现你这里评论少了好多
恩,大家把我忘记了
我的菜单都是静态的,这个功能比较适合菜鸟。
动态可以炫一点嘛,而且这个jq也不难
给我指点下怎么看升级后有没有问题
没有报错那就没有问题了吧
恩·那就好多了·就怕出问题·
老早前就渴望有二级菜单·好在现在的主题已经支持·
如果是原生支持的,那还真是不错的
恩·这主题很好用··
功能确实不错哦 一定要尝试~~~
恩,新发现,还不错的
SF又抢不到 真是的
.sub-menu{display:none;} 嘿嘿,这句是亮点 ~
话说,.slideDown的时候是不是就无视上面这句的效果了 ~
而不需要我们再设定让它显示出来?
恩,是滴,关键就是这个display:none;相当于初始化的时候让它不显示,在.slidDown就无视这个display:none;了
嘎嘎嘎,一直在见证万戈变NB的过程 ~
n级菜单能实现不
也可以啊,就是要配上CSS
还没有升级,懒得弄了,主要担心升级后theme会有不适
很有可能不适应,我的主题就不适应了一下
上次提交主题的时候用上了。挺好用
HOHO,修修已经先我一步了
据说,这个占ID?
这个我还真测试过耶
不是据说,本来就占
说 DIV+CSS 真的不合适,那段就是 HTML 结构。
恩,习惯了,呵呵,因为没有div...
应该是有没有div,都叫HTML结构,呵呵。
PS,您老回复真神速!
我还是继续css吧,不鸟ie6就行了
大叔很猛,我是不敢不鸟IE6
后排支持
此樓鐵定不是後排……
按目前情况,我悲剧的是啊
應該不會的……應該不會的
人氣真的少了那麼多
我把電視劇都看完了還沒有人加蓋耶
啊,LX加蓋了
加盖
再加蓋
忘了這兒再擠一層……
好吧 也沒王法了
就靠你一个人奋斗了,加油
哦,还算前排呀
你來了
走个神点进内页
沙发板凳地板全没空了
貌似博客正常了哦
前台功能是恢复了,还有一些没有
blog恢复了咩@@
还有一部分功能没有恢复。。。
是說提交後的新評論跟前一個重疊了……
再回覆這樓就正常了,奇怪了?
是SF啊啊啊啊啊
看你鸡冻的
萬戈家的SF太久違了呀,不激動不行
咦,是SF嗎
前排
何止是前排呀
我換了瀏覽器cookies都沒有了,再打過所有資料
還可以搶SF是奇蹟……
不是奇迹,是我今时不同往日了
我之前還等了一個早晨就是為了一個SF呢……最後拿了個板凳
吃了个饭,没想到沙了个发就没有了,连前排都悲了个剧,我勒个去这样。
话说我什么时候能有一个沙发坐坐
我去吃飯的時候SF也不必會是你
真的
不要这么打击我啊这样
我也杯具過啊,才沒打擊你啊啊啊啊啊啊啊啊
挤邮箱加塞
再擠你的
没王法了,挤回去
擠擠
继续挤挤,
,==. |~~~
/ 66\ |
\c -_) |~~~
`) ( |
/ \ |~~~
/ \ \ |
(( /\ \_ |~~~
\\ \ `--`|
/ / / |~~~
___ (_(___)_|
這是什麼呀
各种垃圾
再擠~擠得沒完沒了啦~
超长sf
被你加塞得很長的緣故
你还留着必杀技没用呢