函数文档

wp_nav_menu_setup()

💡 云策文档标注

概述

wp_nav_menu_setup() 函数用于在 WordPress 后台导航菜单编辑器中注册元框和高级菜单项。它初始化菜单编辑界面的核心组件,包括自定义链接元框和默认隐藏的列设置。

关键要点

  • 注册导航菜单元框:调用 wp_nav_menu_post_type_meta_boxes() 和 wp_nav_menu_taxonomy_meta_boxes() 来为文章类型和分类法添加菜单项元框。
  • 添加自定义链接元框:使用 add_meta_box() 在“导航菜单”屏幕侧边栏注册“自定义链接”元框,回调函数为 wp_nav_menu_item_link_meta_box。
  • 管理高级菜单项列:通过 add_filter() 添加 manage_nav-menus_columns 过滤器,使用 wp_nav_menu_manage_columns 函数控制列显示。
  • 首次编辑时的默认设置:如果用户首次编辑菜单,通过 update_user_meta() 默认隐藏 link-target、css-classes、xfn、description 和 title-attribute 等列。

代码示例

// Register meta boxes.
wp_nav_menu_post_type_meta_boxes();
add_meta_box(
	'add-custom-links',
	__( 'Custom Links' ),
	'wp_nav_menu_item_link_meta_box',
	'nav-menus',
	'side',
	'default'
);
wp_nav_menu_taxonomy_meta_boxes();

// Register advanced menu items (columns).
add_filter( 'manage_nav-menus_columns', 'wp_nav_menu_manage_columns' );

// If first time editing, disable advanced items by default.
if ( false === get_user_option( 'managenav-menuscolumnshidden' ) ) {
	$user = wp_get_current_user();
	update_user_meta(
		$user->ID,
		'managenav-menuscolumnshidden',
		array(
			0 => 'link-target',
			1 => 'css-classes',
			2 => 'xfn',
			3 => 'description',
			4 => 'title-attribute',
		)
	);
}

📄 原文内容

Register nav menu meta boxes and advanced menu items.

Source

function wp_nav_menu_setup() {
	// Register meta boxes.
	wp_nav_menu_post_type_meta_boxes();
	add_meta_box(
		'add-custom-links',
		__( 'Custom Links' ),
		'wp_nav_menu_item_link_meta_box',
		'nav-menus',
		'side',
		'default'
	);
	wp_nav_menu_taxonomy_meta_boxes();

	// Register advanced menu items (columns).
	add_filter( 'manage_nav-menus_columns', 'wp_nav_menu_manage_columns' );

	// If first time editing, disable advanced items by default.
	if ( false === get_user_option( 'managenav-menuscolumnshidden' ) ) {
		$user = wp_get_current_user();
		update_user_meta(
			$user->ID,
			'managenav-menuscolumnshidden',
			array(
				0 => 'link-target',
				1 => 'css-classes',
				2 => 'xfn',
				3 => 'description',
				4 => 'title-attribute',
			)
		);
	}
}

Changelog

Version Description
3.0.0 Introduced.