wp_nav_menu()函数是在wordpress 3.0版本增加的一个自定义菜单函数,通过该函数可以非常轻松方便地自定义模板的导航菜单,站长只需要在当前主题模板导航显示的位置添加函数<?php wp_nav_menu($args);?>就可以实现自定义菜单的调用,其中$args是该函数的参数,以下同参数的具体说明,可以根据自己的需要设置各项参数!
wp_nav_menu()函数默认参数及说明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php wp_nav_menu(array( 'theme_location' => '', //指定显示的导航名,如果没有设置,则显示第一个 'menu' => '', 'container' => 'div', //最外层容器标签名 'container_class' => 'menu-{menu slug}-container', //最外层容器class名 'container_id' => '', //最外层容器id值 'menu_class' => 'menu', //ul标签class 'menu_id' => '', //ul标签id 'echo' => true, //是否打印,默认是true,如果想将导航的代码作为赋值使用,可设置为false 'fallback_cb' => 'wp_page_menu', //备用的导航菜单函数,用于没有在后台设置导航时调用 'before' => '', //显示在导航a标签之前 'after' => '', //显示在导航a标签之后 'link_before' => '', //显示在导航链接名之后 'link_after' => '', //显示在导航链接名之前 'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>', 'depth' => 0, //显示的菜单层数,默认0,0是显示所有层 'walker' => '' //调用一个对象定义显示导航菜单 ) ); ?> |
wp_nav_menu()函数参数的具体说明:
- $theme_locaton:(字符串)(可选)
用于在调用导航菜单时指定注册过的某一个导航菜单名,如果没有指定,则显示第一个。默认值: None - $menu:(字符串)(可选)
使用导航菜单的名称调用菜单,可以是 id, slug, name (按顺序匹配的)。默认值: None - $container:(字符串)(可选)
ul 父节点(这里指导航菜单的容器)的标签类型,只支持div 和 nav 标签, 如果是其它值, ul 父节点的标签将不会被显示。也可以用false(container => false)去掉ul父节点标签。默认值: div - $container_class:(字符串)(可选)
ul 父节点的 class 属性值。默认值: menu-{menu slug}-container - $container_id:(字符串)(可选)
ul 父节点的 id 属性值。默认值: None - $menu_class:(字符串)(可选)
ul 节点的 class 属性值。默认值: menu - $menu_id:(字符串)(可选)
ul 节点的 id 属性值。默认值: menu slug, 自增长的 - $echo:(布尔型)(可选)
确定直接显示导航菜单还是返回 HTML 片段,如果想将导航的代码作为赋值使用,可设置为false。默认值: true (直接显示) - $fallback_cb:(字符串)(可选)
用于没有在后台设置导航时调的回调函数。默认值: wp_page_menu (显示页面列表作为菜单) - $before:(字符串)(可选)
显示在每个菜单链接前的文本。默认值: None - $after:(字符串)(可选)
显示在每个菜单链接后的文本。默认值: None - $link_before:(字符串)(可选)
显示在每个菜单链接文本前的文本。默认值: None - $link_after:(字符串)(可选)
显示在每个菜单链接文本后的文本。默认值: None - $items_wrap:(字符串)(可选)
使用字符串替换修改ul的class。默认值: None - $depth:(整型)(可选)
显示菜单的深度, 当数值为 0 时显示所有深度的菜单。默认值: 0 - $walker:(对象型)(可选)
自定义的遍历对象,调用一个对象定义显示导航菜单。默认值: new Walker_Nav_Menu
兼容旧版本的wordpress:
利用参数$fallback_cb来实现对旧版本的wordpress的兼容,将参数 ‘sort_column’=>’menu_order’ 写入 wp_nav_menu 的参数,那该参数同时也会传递到 call_user_func 方法中。如果 call_user_func 是 wp_page_menu 方法,那么显示的页面列表将会以赋予的序号排序输出。