本文介绍了和菜单相关的常用函数及其使用方法,包括 wp_nav_menu()、wp_get_nav_menu_items()、wp_get_nav_menu_object()、wp_get_nav_menu_locations()、has_nav_menu()`等函数,以及 wp_nav_menu_args、wp_nav_menu_items、wp_nav_menu_container_allowedtags 等过滤器。
通过本文的介绍,读者可以更好地了解 WordPress 中与菜单相关的函数和过滤器,进而更加高效地开发主题或插件。
1. wp_nav_menu():用于输出菜单的 HTML 代码。可以通过参数来指定菜单的位置、容器元素、样式类等。例如:
$arg = array(
'theme_location' => 'primary-menu',
'container' => 'nav',
'container_class' => 'menu-container',
'menu_class' => 'menu',
);
wp_nav_menu( $arg );
2. wp_get_nav_menu_items():用于获取指定菜单的菜单项。可以通过参数来指定菜单名称、排序方式等。例如:
$menu_items = wp_get_nav_menu_items( 'primary-menu' );
foreach ( $menu_items as $menu_item ) {
echo $menu_item->title;
}
3. wp_get_nav_menu_object():用于获取指定菜单的菜单对象。可以通过参数来指定菜单 ID 或菜单名称。例如:
$menu_object = wp_get_nav_menu_object( 'primary-menu' );
echo $menu_object->name;
4. wp_get_nav_menu_locations():用于获取主题中注册的菜单位置及其对应的菜单 ID。例如:
$menu_locations = wp_get_nav_menu_locations();
echo $menu_locations['primary-menu'];
5. has_nav_menu():用于判断指定位置是否存在菜单。可以通过参数来指定菜单位置名称。例如:
if ( has_nav_menu( 'primary-menu' ) ) {
// 显示菜单
}
6. wp_nav_menu_args 过滤器:用于修改菜单的默认参数。例如:
function my_nav_menu_args( $args ) {
$args['container'] = 'nav';
$args['container_class'] = 'menu-container';
$args['menu_class'] = 'menu';
return $args;
}
add_filter( 'wp_nav_menu_args', 'my_nav_menu_args' );
7. wp_nav_menu_items 过滤器:用于修改菜单项的 HTML 代码。例如:
function my_nav_menu_items( $items, $args ) {
// 在菜单项前后添加自定义 HTML 代码
$items = '<div class="menu-items-wrapper">' . $items . '</div>';
return $items;
}
add_filter( 'wp_nav_menu_items', 'my_nav_menu_items', 10, 2 );
8. wp_nav_menu_container_allowedtags 过滤器:用于修改菜单容器元素的允许标签。例如:
function my_nav_menu_container_allowedtags( $tags ) {
$tags['nav'] = array();
return $tags;
}
add_filter( 'wp_nav_menu_container_allowedtags', 'my_nav_menu_container_allowedtags' );