首页 wordpress标签 wordpress菜单函数...

wordpress菜单函数wp_nav_menu的使用

作者:

修改日期:

wp_nav_menu是wordpress3.0版本后所支持的菜单函数,可以在网站后台外观下生成菜单功能按钮,菜单项可以是自定义链接、页面、分类目录、图片标签。并且支持拖动,从而改变排序和父子关系,最强大的是可以为每个项目添加不同的样式和关系属性。

使用菜单可以使导航的调用变得非常简单和方便,使用方法如下:
1、在wordpress主题函数文件functions.php添加以下代码:

  1. if (function_exists(‘add_theme_support’)) {   
  2. //开启导航菜单主题支持   
  3. add_theme_support(‘nav-menus’);   
  4. //注册一个导航菜单   
  5. register_nav_menus( array( ‘primary’ => __( ‘Primary Navigation’, ‘primary’ ) ) );   
  6. }  

2、添加后,然后在wordpress后台刷新,就可以在外观下多出一个菜单按钮,然后使用以下代码在主题需要展示菜单的地方即可:

  1. <?php  wp_nav_menu($args);?>  

注:其中的$args官方提供的很多的参数,可以根据自己的需要自由选择。

  1. $menu_args = array(   
  2. //最外层容器的标签名,默认div   
  3. ‘container’ => ‘div’,   
  4. //最外层容器的class名   
  5. ‘container_class’ => ‘mainNavBlock’,   
  6. //最外层容器的id名   
  7. ‘container_id’ => ‘menu’,   
  8. //导航菜单ul标签的class名   
  9. ‘menu_class’ => ‘mainNav’,   
  10. //导航菜单ul标签的id名   
  11. ‘menu_id’ => “nav”,   
  12. //是否打印,默认是true,如果想将导航的代码作为赋值使用,可设置为false   
  13. echo‘ => true,   
  14. //备用的导航菜单函数,用于没有在后台设置导航时调用   
  15. ‘fallback_cb’ => ‘the_main_nav’,   
  16. //显示在导航a标签之前   
  17. ‘before’ => ‘<p>’,   
  18. //显示在导航a标签之后   
  19. ‘after’ => ‘</p>’,   
  20. //显示在导航链接名之前   
  21. ‘link_before’ => ‘<em>’,   
  22. //显示在导航链接名之后   
  23. ‘link_after’ => ‘</em>’,   
  24. //显示的菜单层数,默认0,0是显示所有层   
  25. ‘depth’ => 0,   
  26. //调用一个对象定义显示导航菜单   
  27. ‘walker’ => new Walker_Nav_Menu(),   
  28. //指定显示的导航名,如果没有设置,则显示第一个   
  29. ‘theme_location’ => ‘primary’,   
  30. );   
  31. //打印导航菜单   
  32. wp_nav_menu( $menu_args );  

扩展应用案例①:
多菜单调用函数支持:

  1. if ( function_exists(‘register_nav_menus’)) {register_nav_menus(array(‘primary’ =>’顶部菜单设置’));}   
  2. if ( function_exists(‘register_nav_menus’)) {register_nav_menus(array(‘footmenu’ =>’底部菜单设置’));}  

调用代码:

  1. <?php wp_nav_menu( array(‘theme_location’ =>’primary’,)); ?>   
  2. <?php wp_nav_menu( array(‘theme_location’ =>’footmenu’,)); ?>  

扩展应用案例②:
根据是否登录生成不同该菜单栏(是登陆会员和游客看到不同的菜单导航)

  1. <?php   
  2. if ( is_user_logged_in() ) {   
  3. wp_nav_menu( array( ‘theme_location’ => ‘logged-in-menu’ ) );   
  4. else {   
  5. wp_nav_menu( array( ‘theme_location’ => ‘logged-out-menu’ ) );   
  6. }   
  7. ?>