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. |