函数文档

wp_nav_menu_taxonomy_meta_boxes()

💡 云策文档标注

概述

wp_nav_menu_taxonomy_meta_boxes() 函数用于为所有支持在导航菜单中显示的 taxonomy 创建 meta box。它遍历符合条件的 taxonomy,并通过 add_meta_box() 在导航菜单管理界面添加相应的 meta box。

关键要点

  • 函数通过 get_taxonomies() 获取 show_in_nav_menus 为 true 的 taxonomy 对象列表
  • 使用 nav_menu_meta_box_object 过滤器允许修改 taxonomy 对象,控制是否添加 meta box
  • 为每个 taxonomy 调用 add_meta_box(),指定回调函数为 wp_nav_menu_item_taxonomy_meta_box
  • meta box 显示在 nav-menus 管理页面的侧边栏区域

代码示例

function wp_nav_menu_taxonomy_meta_boxes() {
    $taxonomies = get_taxonomies( array( 'show_in_nav_menus' => true ), 'object' );

    if ( ! $taxonomies ) {
        return;
    }

    foreach ( $taxonomies as $tax ) {
        /** This filter is documented in wp-admin/includes/nav-menu.php */
        $tax = apply_filters( 'nav_menu_meta_box_object', $tax );

        if ( $tax ) {
            $id = $tax->name;
            add_meta_box(
                "add-{$id}",
                $tax->labels->name,
                'wp_nav_menu_item_taxonomy_meta_box',
                'nav-menus',
                'side',
                'default',
                $tax
            );
        }
    }
}

注意事项

  • 函数从 WordPress 3.0.0 版本引入
  • 主要用于 wp_nav_menu_setup() 函数中,用于注册导航菜单的 meta box 和高级菜单项
  • 相关函数包括 add_meta_box()、get_taxonomies() 和 apply_filters()

📄 原文内容

Creates meta boxes for any taxonomy menu item.

Source

function wp_nav_menu_taxonomy_meta_boxes() {
	$taxonomies = get_taxonomies( array( 'show_in_nav_menus' => true ), 'object' );

	if ( ! $taxonomies ) {
		return;
	}

	foreach ( $taxonomies as $tax ) {
		/** This filter is documented in wp-admin/includes/nav-menu.php */
		$tax = apply_filters( 'nav_menu_meta_box_object', $tax );

		if ( $tax ) {
			$id = $tax->name;
			add_meta_box(
				"add-{$id}",
				$tax->labels->name,
				'wp_nav_menu_item_taxonomy_meta_box',
				'nav-menus',
				'side',
				'default',
				$tax
			);
		}
	}
}

Hooks

apply_filters( ‘nav_menu_meta_box_object’, WP_Post_Type|false $post_type )

Filters whether a menu items meta box will be added for the current object type.

Changelog

Version Description
3.0.0 Introduced.