函数文档

wp_get_nav_menu_name()

💡 云策文档标注

概述

wp_get_nav_menu_name() 函数用于根据菜单位置标识符返回导航菜单的名称。它通过 get_nav_menu_locations() 和 wp_get_nav_menu_object() 获取菜单对象并提取名称,支持通过过滤器进行自定义。

关键要点

  • 参数:$location(字符串,必需),菜单位置标识符。
  • 返回值:字符串,菜单名称。
  • 内部逻辑:先获取菜单位置映射,再通过 wp_get_nav_menu_object() 获取菜单对象,最后返回 name 属性。
  • 过滤器:wp_get_nav_menu_name,允许在返回前修改菜单名称。
  • 相关函数:get_nav_menu_locations()、wp_get_nav_menu_object()、apply_filters()。
  • 版本:自 WordPress 4.9.0 引入。

代码示例

// 示例1:直接输出菜单名称
if ( has_nav_menu( 'theme_location' ) ) {
    echo wp_get_nav_menu_name( 'theme_location' );
    wp_nav_menu( 'theme_location' );
}

// 示例2:获取菜单对象并输出名称
$locations = get_nav_menu_locations();
$menu = wp_get_nav_menu_object( $locations['registered-menu-location-slug'] );
echo '' . wp_kses_post( $menu->name ) . '';

📄 原文内容

Returns the name of a navigation menu.

Parameters

$locationstringrequired
Menu location identifier.

Return

string Menu name.

Source

function wp_get_nav_menu_name( $location ) {
	$menu_name = '';

	$locations = get_nav_menu_locations();

	if ( isset( $locations[ $location ] ) ) {
		$menu = wp_get_nav_menu_object( $locations[ $location ] );

		if ( $menu && $menu->name ) {
			$menu_name = $menu->name;
		}
	}

	/**
	 * Filters the navigation menu name being returned.
	 *
	 * @since 4.9.0
	 *
	 * @param string $menu_name Menu name.
	 * @param string $location  Menu location identifier.
	 */
	return apply_filters( 'wp_get_nav_menu_name', $menu_name, $location );
}

Hooks

apply_filters( ‘wp_get_nav_menu_name’, string $menu_name, string $location )

Filters the navigation menu name being returned.

Changelog

Version Description
4.9.0 Introduced.

User Contributed Notes