wp_nav_menu是WordPress中一个非常常用的函数,用于输出自定义菜单。它的用法非常灵活,可以实现各种不同的菜单输出效果。
基本用法:
wp_nav_menu(array $args = array(), $location = '', $menu_id = '')
$args是一个数组,用于设置菜单的各种属性和参数。常用的参数包括:
- 'theme_location':指定菜单的位置,对应注册菜单时的参数。
- 'menu':指定菜单的名称或ID。
- 'container':是否使用一个包裹容器,默认为'nav'。
- 'container_class':容器的CSS类名。
- 'container_id':容器的ID。
- 'menu_class':菜单列表的CSS类名。
- 'menu_id':菜单列表的ID。
- 'depth':菜单的层级深度,默认为0。
- 'walker':自定义的菜单输出类,用于自定义菜单的HTML结构。
$location是一个字符串,用于指定菜单的位置。它对应注册菜单时的参数'theme_location'。
$menu_id是一个字符串,用于指定菜单列表的ID。如果不指定,则默认为'menu-{location}'。
示例代码:
$args = array(
'theme_location' => 'primary',
'container_class' => 'my-menu',
'menu_class' => 'menu',
'depth' => 1
);
wp_nav_menu($args);
这段代码会输出一个具有类名为'my-menu'的包裹容器,其中包含一个CSS类名为'menu'的菜单列表,菜单的层级深度为1级。
自定义菜单输出类:
通过设置参数'walker',我们可以自定义菜单的HTML结构。可以继承默认的菜单输出类WP_Nav_Walker,也可以自定义一个全新的菜单输出类。
自定义菜单输出类需要继承WP_Nav_Walker,并重写其方法。常用的方法有:
- start_lvl:开始输出子菜单的标签。
- end_lvl:结束输出子菜单的标签。
- start_el:输出菜单项的开始标签。
- end_el:输出菜单项的结束标签。
- display_element:控制菜单项的输出。
示例代码:
class My_Walker extends Walker_Nav_Menu {
function start_el(&$output, $item, $depth, $args) {
$output .= '
$output .= 'url . '">' . $item->title . '';
$output .= '
';
}
}
$args = array(
'theme_location' => 'primary',
'walker' => new My_Walker()
);
wp_nav_menu($args);
这段代码会输出一个不带任何标签的菜单列表,只包含菜单项的链接。自定义的菜单输出类只输出了菜单项的开始标签、链接和结束标签,省略了容器和子菜单的标签。
总结:
通过wp_nav_menu函数,我们可以方便地输出自定义菜单。通过设置参数,我们可以灵活地控制菜单的各种属性和样式。通过自定义菜单输出类,我们可以进一步定制菜单的HTML结构。
0 个评论