找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3101|回复: 0

[分享] WordPress主题制作下拉菜单详细教程

[复制链接]
发表于 2016-1-14 10:09:00 | 显示全部楼层 |阅读模式 来自 中国–河南–南阳
众所周知,WordPress3.0中增加了一个非常实用方便的自定义菜单功能,这个功能可以使我们轻松的制作出多级下拉菜单,今天,笔者就通过一个简单的二级下拉菜单的示例来告诉各位童鞋具体怎么操作。
Step 1 — 在functions.php中添加以下代码,使我们的主题支持自定义菜单功能。
  1. add_theme_support(‘nav-menus’);
复制代码
Step 2 — 添加一个顶部菜单。
  1. if ( function_exists( ‘register_nav_menus’ ) ) {
  2. register_nav_menus(
  3. array(
  4. ‘header_menu’ => ‘Header Navigation’

  5. );
  6. }
复制代码
Step 3 — 把wp_nav_menu()函数放到一个自定义函数当中.
  1. function wper_so_menu(){
  2. if(function_exists(‘wp_nav_menu’) && has_nav_menu(‘header_menu’)):
  3. wp_nav_menu(
  4. array(
  5. ‘menu’ => ‘Header Navigation’,
  6. ‘container’ => ‘div’,
  7. ‘container_class’ => ‘warp’,
  8. ‘container_id’ => ‘’,
  9. ‘menu_class’ => ‘ddsmoothmenu’,
  10. ‘menu_id’ => ‘nav’,
  11. ‘echo’ => true,
  12. ‘fallback_cb’ => ‘fallback_no_menu’,
  13. ‘before’ => ‘’,
  14. ‘after’ => ‘’,
  15. ‘link_before’ => ‘’,
  16. ‘link_after’ => ‘’,
  17. ‘depth’ => 2,
  18. ‘walker’ => new Walker_Nav_Menu(),
  19. ‘theme_location’ => ‘’,
  20. ‘show_home’ => true

  21. );
  22. endif;
  23. }
复制代码
这里我解释一下wp_nav_menu()函数的各个参数。这个函数的功能就是显示一个自定义导航菜单(官方文档):
menu: 我们创建的菜单名称。本例中我们使用“Header Navigation”
container: 我们创建的菜单所在容器的名称。如果设置为“div”,则输出结果为<div>.....</div>,本例中我们使用“div”。
container_class: 上面的容器的class属性。如果设置为nav,则输出结果为<div class=“nav”>.....</div>,本例中我们使用“warp”
container_id: 上面的容器的id属性。如果设置为menu,则输出结果为<div id=“menu”>.....</div>
menu_class:无序列表ul的class属性。本例中我们设置为“ddsmoothmenu”,则输入结果为<ul class=“ddsmoothmenu”>.....</ul>
menu_id:无序列表ul的id属。如果设置为“menu-item”,则输出结果为<ul id=“menu-item”>.....</ul>本例中我们使用“nav”
echo: 是否显示菜单。如果设置为false,则不显示菜单。
fallback_cb: 菜单无法显示时的提示信息。比如:菜单未找到。
before, after:包含<a&>标签容器的名称,如果设置为:<span>和</span>则输出结果为:<span><a>.....</a></span>
link_before, link_ after: 包含链接文字的标签名称,如果设置为:<em>和</em>则输出结果为:<a><em>链接文字</em></a>
depth:下拉菜单的深度,本例中我们设置为:2,则只支持两级下拉菜单。默认为0,即无限级下拉菜单。
walker: 自定义的遍历对象,调用一个对象定义显示导航菜单。默认为 :new Walker_Nav_Menu()
theme_location:后台菜单页面中包含菜单名称的容器的ID.
show_home:布尔型值,是否显示首页。
Step 4 — 在header.php中的适当位置调用我们的自定义函数.
Step 5 — 现在我们的主题已经支持一个自定义菜单了,接下来利用jQuery实现下来菜单的动画效果。加载jQuery库是必须地!
所用到的jQuery代码:
  1. (function($) {
  2. $(function() {
  3. $(document).ready(function () {
  4. $(‘#nav li’).hover(
  5. function () {
  6. //显示二级菜单,括号中的数字表示下拉菜单完全显示出来需要200毫秒。
  7. $(‘ul’, this).slideDown(200);
  8. },
  9. function () {
  10. //隐藏二级菜单
  11. $(‘ul’, this).slideUp(150);
  12. }
  13. );
  14. );
  15. });
  16. })(jQuery);
  17. 最后,我们得到如下HTML代码:
  18. <div class=“warp”>
  19. <ul id=“nav” class=“ddsmoothmenu”>
  20. <li id=“menu-item-6” class=“menu-item .... menu-item-6”>
  21. <a href=“http://localhost/?page_id=2”>
  22. <span><em>示例页面2</em></span>
  23. </a>
  24. <!-- 二级下拉菜单 -->
  25. <ul class=“sub-menu”>
  26. <li id=“menu-item-36” class=“menu-item .... menu-item-36”>
  27. <a href=“http://localhost/?page_id=3”>
  28. <span><em>实例页面3</em></span>
  29. </a>
  30. </li>
  31. <li id=“menu-item-54” class=“menu-item .... menu-item-54”>
  32. <a href=“http://localhost/?cat=1”>
  33. <span><em>文章分类1</em></span>
  34. </a>
  35. </li>
  36. <li id=“menu-item-55” class=“menu-item .... menu-item-55”>
  37. <a href=“http://localhost/?page_id=4”>
  38. <span><em>示例页面4</em></span>
  39. </a>
  40. </li>
  41. <li id=“menu-item-56” class=“menu-item ..... menu-item-56”>
  42. <a href=“http://localhost/?page_id=5”>
  43. <span><em>示例页面5</em></span>
  44. </a>
  45. </li>
  46. </ul>
  47. <!-- 二级下拉菜单结束 -->
  48. </li>
  49. </ul>
  50. </div>
复制代码
这样,我们的下拉菜单就制作完成了,只要适当的美化一下即可,至于CSS代码,相信聪明的你肯定可以写出来。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-21 20:11 , Processed in 0.044558 second(s), 9 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表