wp_nav_menu_item_taxonomy_meta_box

The timeline below displays how wordpress function wp_nav_menu_item_taxonomy_meta_box has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.5

/**
 * Displays a meta box for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $data_object Not used.
 * @param array  $box {
 *     Taxonomy menu item meta box arguments.
 *
 *     @type string   $id       Meta box 'id' attribute.
 *     @type string   $title    Meta box title.
 *     @type callable $callback Meta box display callback.
 *     @type object   $args     Extra meta box arguments (the taxonomy object for this meta box).
 * }
 */
function wp_nav_menu_item_taxonomy_meta_box($data_object, $box)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $box['args']->name;
    $taxonomy = get_taxonomy($taxonomy_name);
    $tab_name = $taxonomy_name . '-tab';
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$tab_name]) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('taxonomy' => $taxonomy_name, 'child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = (int) ceil(wp_count_terms(array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array(
        'base' => add_query_arg(array($tab_name => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)),
        'format' => '',
        'prev_text' => '<span aria-label="' . esc_attr__('Previous page') . '">' . __('&laquo;') . '</span>',
        'next_text' => '<span aria-label="' . esc_attr__('Next page') . '">' . __('&raquo;') . '</span>',
        /* translators: Hidden accessibility text. */
        'before_page_number' => '<span class="screen-reader-text">' . __('Page') . '</span> ',
        'total' => $num_pages,
        'current' => $pagenum,
    ));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$tab_name]) && in_array($_REQUEST[$tab_name], array('all', 'most-used', 'search'), true)) {
        $current_tab = $_REQUEST[$tab_name];
    }
    if (!empty($_REQUEST["quick-search-taxonomy-{$taxonomy_name}"])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    $most_used_url = '';
    $view_all_url = '';
    $search_url = '';
    if ($nav_menu_selected_id) {
        $most_used_url = add_query_arg($tab_name, 'most-used', remove_query_arg($removed_args));
        $view_all_url = add_query_arg($tab_name, 'all', remove_query_arg($removed_args));
        $search_url = add_query_arg($tab_name, 'search', remove_query_arg($removed_args));
    }
    ?>
	<div id="<?php 
    echo esc_attr("taxonomy-{$taxonomy_name}");
    ?>" class="taxonomydiv">
		<ul id="<?php 
    echo esc_attr("taxonomy-{$taxonomy_name}-tabs");
    ?>" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link"
					data-type="<?php 
    echo esc_attr("tabs-panel-{$taxonomy_name}-pop");
    ?>"
					href="<?php 
    echo esc_url($most_used_url . "#tabs-panel-{$taxonomy_name}-pop");
    ?>"
				>
					<?php 
    echo esc_html($taxonomy->labels->most_used);
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link"
					data-type="<?php 
    echo esc_attr("tabs-panel-{$taxonomy_name}-all");
    ?>"
					href="<?php 
    echo esc_url($view_all_url . "#tabs-panel-{$taxonomy_name}-all");
    ?>"
				>
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link"
					data-type="<?php 
    echo esc_attr("tabs-panel-search-taxonomy-{$taxonomy_name}");
    ?>"
					href="<?php 
    echo esc_url($search_url . "#tabs-panel-search-taxonomy-{$taxonomy_name}");
    ?>"
				>
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="<?php 
    echo esc_attr("tabs-panel-{$taxonomy_name}-pop");
    ?>"
			class="tabs-panel <?php 
    echo ('most-used' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>"
			role="region" aria-label="<?php 
    echo esc_attr($taxonomy->labels->most_used);
    ?>" tabindex="0"
		>
			<ul id="<?php 
    echo esc_attr("{$taxonomy_name}checklist-pop");
    ?>"
				class="categorychecklist form-no-clear"
			>
				<?php 
    $popular_terms = get_terms(array('taxonomy' => $taxonomy_name, 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="<?php 
    echo esc_attr("tabs-panel-{$taxonomy_name}-all");
    ?>"
			class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>"
			role="region" aria-label="<?php 
    echo esc_attr($taxonomy->labels->all_items);
    ?>" tabindex="0"
		>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>

			<ul id="<?php 
    echo esc_attr("{$taxonomy_name}checklist");
    ?>"
				data-wp-lists="<?php 
    echo esc_attr("list:{$taxonomy_name}");
    ?>"
				class="categorychecklist form-no-clear"
			>
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>

			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div id="<?php 
    echo esc_attr("tabs-panel-search-taxonomy-{$taxonomy_name}");
    ?>"
			class="tabs-panel <?php 
    echo ('search' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>"
			role="region" aria-label="<?php 
    echo esc_attr($taxonomy->labels->search_items);
    ?>" tabindex="0">
			<?php 
    if (isset($_REQUEST["quick-search-taxonomy-{$taxonomy_name}"])) {
        $searched = esc_attr($_REQUEST["quick-search-taxonomy-{$taxonomy_name}"]);
        $search_results = get_terms(array('taxonomy' => $taxonomy_name, 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<label for="<?php 
    echo esc_attr("quick-search-taxonomy-{$taxonomy_name}");
    ?>" class="screen-reader-text">
					<?php 
    /* translators: Hidden accessibility text. */
    _e('Search');
    ?>
				</label>
				<input type="search"
					class="quick-search" value="<?php 
    echo $searched;
    ?>"
					name="<?php 
    echo esc_attr("quick-search-taxonomy-{$taxonomy_name}");
    ?>"
					id="<?php 
    echo esc_attr("quick-search-taxonomy-{$taxonomy_name}");
    ?>"
				/>
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'small quick-search-submit hide-if-js', 'submit', false, array('id' => "submit-quick-search-taxonomy-{$taxonomy_name}"));
    ?>
			</p>

			<ul id="<?php 
    echo esc_attr("{$taxonomy_name}-search-checklist");
    ?>"
				data-wp-lists="<?php 
    echo esc_attr("list:{$taxonomy_name}");
    ?>"
				class="categorychecklist form-no-clear"
			>
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls wp-clearfix" data-items-type="<?php 
    echo esc_attr("taxonomy-{$taxonomy_name}");
    ?>">
			<span class="list-controls hide-if-no-js">
				<input type="checkbox"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?>
					id="<?php 
    echo esc_attr($tab_name);
    ?>" class="select-all"
				/>
				<label for="<?php 
    echo esc_attr($tab_name);
    ?>"><?php 
    _e('Select All');
    ?></label>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?>
					class="button submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>"
					name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr("submit-taxonomy-{$taxonomy_name}");
    ?>"
				/>
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 6.3

/**
 * Displays a meta box for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $data_object Not used.
 * @param array  $box {
 *     Taxonomy menu item meta box arguments.
 *
 *     @type string   $id       Meta box 'id' attribute.
 *     @type string   $title    Meta box title.
 *     @type callable $callback Meta box display callback.
 *     @type object   $args     Extra meta box arguments (the taxonomy object for this meta box).
 * }
 */
function wp_nav_menu_item_taxonomy_meta_box($data_object, $box)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $box['args']->name;
    $taxonomy = get_taxonomy($taxonomy_name);
    $tab_name = $taxonomy_name . '-tab';
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$tab_name]) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('taxonomy' => $taxonomy_name, 'child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms(array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array(
        'base' => add_query_arg(array($tab_name => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)),
        'format' => '',
        'prev_text' => '<span aria-label="' . esc_attr__('Previous page') . '">' . __('&laquo;') . '</span>',
        'next_text' => '<span aria-label="' . esc_attr__('Next page') . '">' . __('&raquo;') . '</span>',
        /* translators: Hidden accessibility text. */
        'before_page_number' => '<span class="screen-reader-text">' . __('Page') . '</span> ',
        'total' => $num_pages,
        'current' => $pagenum,
    ));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$tab_name]) && in_array($_REQUEST[$tab_name], array('all', 'most-used', 'search'), true)) {
        $current_tab = $_REQUEST[$tab_name];
    }
    if (!empty($_REQUEST["quick-search-taxonomy-{$taxonomy_name}"])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    $most_used_url = '';
    $view_all_url = '';
    $search_url = '';
    if ($nav_menu_selected_id) {
        $most_used_url = add_query_arg($tab_name, 'most-used', remove_query_arg($removed_args));
        $view_all_url = add_query_arg($tab_name, 'all', remove_query_arg($removed_args));
        $search_url = add_query_arg($tab_name, 'search', remove_query_arg($removed_args));
    }
    ?>
	<div id="<?php 
    echo esc_attr("taxonomy-{$taxonomy_name}");
    ?>" class="taxonomydiv">
		<ul id="<?php 
    echo esc_attr("taxonomy-{$taxonomy_name}-tabs");
    ?>" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link"
					data-type="<?php 
    echo esc_attr("tabs-panel-{$taxonomy_name}-pop");
    ?>"
					href="<?php 
    echo esc_url($most_used_url . "#tabs-panel-{$taxonomy_name}-pop");
    ?>"
				>
					<?php 
    echo esc_html($taxonomy->labels->most_used);
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link"
					data-type="<?php 
    echo esc_attr("tabs-panel-{$taxonomy_name}-all");
    ?>"
					href="<?php 
    echo esc_url($view_all_url . "#tabs-panel-{$taxonomy_name}-all");
    ?>"
				>
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link"
					data-type="<?php 
    echo esc_attr("tabs-panel-search-taxonomy-{$taxonomy_name}");
    ?>"
					href="<?php 
    echo esc_url($search_url . "#tabs-panel-search-taxonomy-{$taxonomy_name}");
    ?>"
				>
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="<?php 
    echo esc_attr("tabs-panel-{$taxonomy_name}-pop");
    ?>"
			class="tabs-panel <?php 
    echo ('most-used' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>"
			role="region" aria-label="<?php 
    echo esc_attr($taxonomy->labels->most_used);
    ?>" tabindex="0"
		>
			<ul id="<?php 
    echo esc_attr("{$taxonomy_name}checklist-pop");
    ?>"
				class="categorychecklist form-no-clear"
			>
				<?php 
    $popular_terms = get_terms(array('taxonomy' => $taxonomy_name, 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="<?php 
    echo esc_attr("tabs-panel-{$taxonomy_name}-all");
    ?>"
			class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>"
			role="region" aria-label="<?php 
    echo esc_attr($taxonomy->labels->all_items);
    ?>" tabindex="0"
		>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>

			<ul id="<?php 
    echo esc_attr("{$taxonomy_name}checklist");
    ?>"
				data-wp-lists="<?php 
    echo esc_attr("list:{$taxonomy_name}");
    ?>"
				class="categorychecklist form-no-clear"
			>
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>

			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div id="<?php 
    echo esc_attr("tabs-panel-search-taxonomy-{$taxonomy_name}");
    ?>"
			class="tabs-panel <?php 
    echo ('search' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>"
			role="region" aria-label="<?php 
    echo esc_attr($taxonomy->labels->search_items);
    ?>" tabindex="0">
			<?php 
    if (isset($_REQUEST["quick-search-taxonomy-{$taxonomy_name}"])) {
        $searched = esc_attr($_REQUEST["quick-search-taxonomy-{$taxonomy_name}"]);
        $search_results = get_terms(array('taxonomy' => $taxonomy_name, 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<label for="<?php 
    echo esc_attr("quick-search-taxonomy-{$taxonomy_name}");
    ?>" class="screen-reader-text">
					<?php 
    /* translators: Hidden accessibility text. */
    _e('Search');
    ?>
				</label>
				<input type="search"
					class="quick-search" value="<?php 
    echo $searched;
    ?>"
					name="<?php 
    echo esc_attr("quick-search-taxonomy-{$taxonomy_name}");
    ?>"
					id="<?php 
    echo esc_attr("quick-search-taxonomy-{$taxonomy_name}");
    ?>"
				/>
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'small quick-search-submit hide-if-js', 'submit', false, array('id' => "submit-quick-search-taxonomy-{$taxonomy_name}"));
    ?>
			</p>

			<ul id="<?php 
    echo esc_attr("{$taxonomy_name}-search-checklist");
    ?>"
				data-wp-lists="<?php 
    echo esc_attr("list:{$taxonomy_name}");
    ?>"
				class="categorychecklist form-no-clear"
			>
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls wp-clearfix" data-items-type="<?php 
    echo esc_attr("taxonomy-{$taxonomy_name}");
    ?>">
			<span class="list-controls hide-if-no-js">
				<input type="checkbox"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?>
					id="<?php 
    echo esc_attr($tab_name);
    ?>" class="select-all"
				/>
				<label for="<?php 
    echo esc_attr($tab_name);
    ?>"><?php 
    _e('Select All');
    ?></label>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?>
					class="button submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>"
					name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr("submit-taxonomy-{$taxonomy_name}");
    ?>"
				/>
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 6.2

/**
 * Displays a meta box for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $data_object Not used.
 * @param array  $box {
 *     Taxonomy menu item meta box arguments.
 *
 *     @type string   $id       Meta box 'id' attribute.
 *     @type string   $title    Meta box title.
 *     @type callable $callback Meta box display callback.
 *     @type object   $args     Extra meta box arguments (the taxonomy object for this meta box).
 * }
 */
function wp_nav_menu_item_taxonomy_meta_box($data_object, $box)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $box['args']->name;
    $taxonomy = get_taxonomy($taxonomy_name);
    $tab_name = $taxonomy_name . '-tab';
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$tab_name]) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('taxonomy' => $taxonomy_name, 'child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms(array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array(
        'base' => add_query_arg(array($tab_name => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)),
        'format' => '',
        'prev_text' => '<span aria-label="' . esc_attr__('Previous page') . '">' . __('&laquo;') . '</span>',
        'next_text' => '<span aria-label="' . esc_attr__('Next page') . '">' . __('&raquo;') . '</span>',
        /* translators: Hidden accessibility text. */
        'before_page_number' => '<span class="screen-reader-text">' . __('Page') . '</span> ',
        'total' => $num_pages,
        'current' => $pagenum,
    ));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$tab_name]) && in_array($_REQUEST[$tab_name], array('all', 'most-used', 'search'), true)) {
        $current_tab = $_REQUEST[$tab_name];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    $most_used_url = '';
    $view_all_url = '';
    $search_url = '';
    if ($nav_menu_selected_id) {
        $most_used_url = esc_url(add_query_arg($tab_name, 'most-used', remove_query_arg($removed_args)));
        $view_all_url = esc_url(add_query_arg($tab_name, 'all', remove_query_arg($removed_args)));
        $search_url = esc_url(add_query_arg($tab_name, 'search', remove_query_arg($removed_args)));
    }
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    echo $most_used_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    echo esc_html($taxonomy->labels->most_used);
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    echo $view_all_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    echo $search_url;
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->most_used;
    ?>" tabindex="0">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms(array('taxonomy' => $taxonomy_name, 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->all_items;
    ?>" tabindex="0">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->search_items;
    ?>" tabindex="0">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms(array('taxonomy' => $taxonomy_name, 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<label for="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="screen-reader-text">
					<?php 
    /* translators: Hidden accessibility text. */
    _e('Search');
    ?>
				</label>
				<input type="search" class="quick-search" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" id="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'small quick-search-submit hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls wp-clearfix" data-items-type="taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>">
			<span class="list-controls hide-if-no-js">
				<input type="checkbox"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> id="<?php 
    echo esc_attr($tab_name);
    ?>" class="select-all" />
				<label for="<?php 
    echo esc_attr($tab_name);
    ?>"><?php 
    _e('Select All');
    ?></label>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 6.1

/**
 * Displays a meta box for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $data_object Not used.
 * @param array  $box {
 *     Taxonomy menu item meta box arguments.
 *
 *     @type string   $id       Meta box 'id' attribute.
 *     @type string   $title    Meta box title.
 *     @type callable $callback Meta box display callback.
 *     @type object   $args     Extra meta box arguments (the taxonomy object for this meta box).
 * }
 */
function wp_nav_menu_item_taxonomy_meta_box($data_object, $box)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $box['args']->name;
    $taxonomy = get_taxonomy($taxonomy_name);
    $tab_name = $taxonomy_name . '-tab';
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$tab_name]) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('taxonomy' => $taxonomy_name, 'child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms(array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($tab_name => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => '<span aria-label="' . esc_attr__('Previous page') . '">' . __('&laquo;') . '</span>', 'next_text' => '<span aria-label="' . esc_attr__('Next page') . '">' . __('&raquo;') . '</span>', 'before_page_number' => '<span class="screen-reader-text">' . __('Page') . '</span> ', 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$tab_name]) && in_array($_REQUEST[$tab_name], array('all', 'most-used', 'search'), true)) {
        $current_tab = $_REQUEST[$tab_name];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    $most_used_url = '';
    $view_all_url = '';
    $search_url = '';
    if ($nav_menu_selected_id) {
        $most_used_url = esc_url(add_query_arg($tab_name, 'most-used', remove_query_arg($removed_args)));
        $view_all_url = esc_url(add_query_arg($tab_name, 'all', remove_query_arg($removed_args)));
        $search_url = esc_url(add_query_arg($tab_name, 'search', remove_query_arg($removed_args)));
    }
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    echo $most_used_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    echo esc_html($taxonomy->labels->most_used);
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    echo $view_all_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    echo $search_url;
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->most_used;
    ?>" tabindex="0">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms(array('taxonomy' => $taxonomy_name, 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->all_items;
    ?>" tabindex="0">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->search_items;
    ?>" tabindex="0">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms(array('taxonomy' => $taxonomy_name, 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<label for="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="screen-reader-text"><?php 
    _e('Search');
    ?></label>
				<input type="search" class="quick-search" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" id="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'small quick-search-submit hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls wp-clearfix" data-items-type="taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>">
			<span class="list-controls hide-if-no-js">
				<input type="checkbox"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> id="<?php 
    echo esc_attr($tab_name);
    ?>" class="select-all" />
				<label for="<?php 
    echo esc_attr($tab_name);
    ?>"><?php 
    _e('Select All');
    ?></label>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 5.6

/**
 * Displays a meta box for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $object Not used.
 * @param array  $box {
 *     Taxonomy menu item meta box arguments.
 *
 *     @type string   $id       Meta box 'id' attribute.
 *     @type string   $title    Meta box title.
 *     @type callable $callback Meta box display callback.
 *     @type object   $args     Extra meta box arguments (the taxonomy object for this meta box).
 * }
 */
function wp_nav_menu_item_taxonomy_meta_box($object, $box)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $box['args']->name;
    $taxonomy = get_taxonomy($taxonomy_name);
    $tab_name = $taxonomy_name . '-tab';
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$tab_name]) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('taxonomy' => $taxonomy_name, 'child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms(array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($tab_name => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => '<span aria-label="' . esc_attr__('Previous page') . '">' . __('&laquo;') . '</span>', 'next_text' => '<span aria-label="' . esc_attr__('Next page') . '">' . __('&raquo;') . '</span>', 'before_page_number' => '<span class="screen-reader-text">' . __('Page') . '</span> ', 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$tab_name]) && in_array($_REQUEST[$tab_name], array('all', 'most-used', 'search'), true)) {
        $current_tab = $_REQUEST[$tab_name];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    $most_used_url = '';
    $view_all_url = '';
    $search_url = '';
    if ($nav_menu_selected_id) {
        $most_used_url = esc_url(add_query_arg($tab_name, 'most-used', remove_query_arg($removed_args)));
        $view_all_url = esc_url(add_query_arg($tab_name, 'all', remove_query_arg($removed_args)));
        $search_url = esc_url(add_query_arg($tab_name, 'search', remove_query_arg($removed_args)));
    }
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    echo $most_used_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    echo esc_html($taxonomy->labels->most_used);
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    echo $view_all_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    echo $search_url;
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->most_used;
    ?>" tabindex="0">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms(array('taxonomy' => $taxonomy_name, 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->all_items;
    ?>" tabindex="0">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->search_items;
    ?>" tabindex="0">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms(array('taxonomy' => $taxonomy_name, 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<label for="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="screen-reader-text"><?php 
    _e('Search');
    ?></label>
				<input type="search" class="quick-search" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" id="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'small quick-search-submit hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls wp-clearfix" data-items-type="taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>">
			<span class="list-controls hide-if-no-js">
				<input type="checkbox"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> id="<?php 
    echo esc_attr($tab_name);
    ?>" class="select-all" />
				<label for="<?php 
    echo esc_attr($tab_name);
    ?>"><?php 
    _e('Select All');
    ?></label>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 5.5

/**
 * Displays a meta box for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $object Not used.
 * @param array  $box {
 *     Taxonomy menu item meta box arguments.
 *
 *     @type string   $id       Meta box 'id' attribute.
 *     @type string   $title    Meta box title.
 *     @type callable $callback Meta box display callback.
 *     @type object   $args     Extra meta box arguments (the taxonomy object for this meta box).
 * }
 */
function wp_nav_menu_item_taxonomy_meta_box($object, $box)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $box['args']->name;
    $taxonomy = get_taxonomy($taxonomy_name);
    $tab_name = $taxonomy_name . '-tab';
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$tab_name]) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('taxonomy' => $taxonomy_name, 'child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms($taxonomy_name, array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($tab_name => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => '<span aria-label="' . esc_attr__('Previous page') . '">' . __('&laquo;') . '</span>', 'next_text' => '<span aria-label="' . esc_attr__('Next page') . '">' . __('&raquo;') . '</span>', 'before_page_number' => '<span class="screen-reader-text">' . __('Page') . '</span> ', 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$tab_name]) && in_array($_REQUEST[$tab_name], array('all', 'most-used', 'search'), true)) {
        $current_tab = $_REQUEST[$tab_name];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    $most_used_url = '';
    $view_all_url = '';
    $search_url = '';
    if ($nav_menu_selected_id) {
        $most_used_url = esc_url(add_query_arg($tab_name, 'most-used', remove_query_arg($removed_args)));
        $view_all_url = esc_url(add_query_arg($tab_name, 'all', remove_query_arg($removed_args)));
        $search_url = esc_url(add_query_arg($tab_name, 'search', remove_query_arg($removed_args)));
    }
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    echo $most_used_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    echo esc_html($taxonomy->labels->most_used);
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    echo $view_all_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' === $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    echo $search_url;
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->most_used;
    ?>" tabindex="0">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms(array('taxonomy' => $taxonomy_name, 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->all_items;
    ?>" tabindex="0">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' === $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->search_items;
    ?>" tabindex="0">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms(array('taxonomy' => $taxonomy_name, 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<label for="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="screen-reader-text"><?php 
    _e('Search');
    ?></label>
				<input type="search" class="quick-search" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" id="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'small quick-search-submit hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls wp-clearfix" data-items-type="taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>">
			<span class="list-controls hide-if-no-js">
				<input type="checkbox"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> id="<?php 
    echo esc_attr($tab_name);
    ?>" class="select-all" />
				<label for="<?php 
    echo esc_attr($tab_name);
    ?>"><?php 
    _e('Select All');
    ?></label>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 5.4

/**
 * Displays a meta box for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $object Not used.
 * @param array  $box {
 *     Taxonomy menu item meta box arguments.
 *
 *     @type string $id       Meta box 'id' attribute.
 *     @type string $title    Meta box title.
 *     @type string $callback Meta box display callback.
 *     @type object $args     Extra meta box arguments (the taxonomy object for this meta box).
 * }
 */
function wp_nav_menu_item_taxonomy_meta_box($object, $box)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $box['args']->name;
    $taxonomy = get_taxonomy($taxonomy_name);
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$taxonomy_name . '-tab']) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('taxonomy' => $taxonomy_name, 'child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms($taxonomy_name, array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($taxonomy_name . '-tab' => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => '<span aria-label="' . esc_attr__('Previous page') . '">' . __('&laquo;') . '</span>', 'next_text' => '<span aria-label="' . esc_attr__('Next page') . '">' . __('&raquo;') . '</span>', 'before_page_number' => '<span class="screen-reader-text">' . __('Page') . '</span> ', 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$taxonomy_name . '-tab']) && in_array($_REQUEST[$taxonomy_name . '-tab'], array('all', 'most-used', 'search'))) {
        $current_tab = $_REQUEST[$taxonomy_name . '-tab'];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    $most_used_url = '';
    $view_all_url = '';
    $search_url = '';
    if ($nav_menu_selected_id) {
        $most_used_url = esc_url(add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg($removed_args)));
        $view_all_url = esc_url(add_query_arg($taxonomy_name . '-tab', 'all', remove_query_arg($removed_args)));
        $search_url = esc_url(add_query_arg($taxonomy_name . '-tab', 'search', remove_query_arg($removed_args)));
    }
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    echo $most_used_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    echo esc_html($taxonomy->labels->most_used);
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    echo $view_all_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    echo $search_url;
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->most_used;
    ?>" tabindex="0">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms(array('taxonomy' => $taxonomy_name, 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->all_items;
    ?>" tabindex="0">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" role="region" aria-label="<?php 
    echo $taxonomy->labels->search_items;
    ?>" tabindex="0">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms(array('taxonomy' => $taxonomy_name, 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<label for="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="screen-reader-text"><?php 
    _e('Search');
    ?></label>
				<input type="search" class="quick-search" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" id="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'small quick-search-submit hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls wp-clearfix" data-items-type="taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>">
			<span class="list-controls hide-if-no-js">
				<input type="checkbox"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> id="<?php 
    echo esc_attr($taxonomy_name . '-tab');
    ?>" class="select-all" />
				<label for="<?php 
    echo esc_attr($taxonomy_name . '-tab');
    ?>"><?php 
    _e('Select All');
    ?></label>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 3.1

/**
 * Displays a meta box for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $object Not used.
 * @param array  $box {
 *     Taxonomy menu item meta box arguments.
 *
 *     @type string $id       Meta box 'id' attribute.
 *     @type string $title    Meta box title.
 *     @type string $callback Meta box display callback.
 *     @type object $args     Extra meta box arguments (the taxonomy object for this meta box).
 * }
 */
function wp_nav_menu_item_taxonomy_meta_box($object, $box)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $box['args']->name;
    $taxonomy = get_taxonomy($taxonomy_name);
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$taxonomy_name . '-tab']) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('taxonomy' => $taxonomy_name, 'child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms($taxonomy_name, array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($taxonomy_name . '-tab' => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => '<span aria-label="' . esc_attr__('Previous page') . '">' . __('&laquo;') . '</span>', 'next_text' => '<span aria-label="' . esc_attr__('Next page') . '">' . __('&raquo;') . '</span>', 'before_page_number' => '<span class="screen-reader-text">' . __('Page') . '</span> ', 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$taxonomy_name . '-tab']) && in_array($_REQUEST[$taxonomy_name . '-tab'], array('all', 'most-used', 'search'))) {
        $current_tab = $_REQUEST[$taxonomy_name . '-tab'];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    $most_used_url = '';
    $view_all_url = '';
    $search_url = '';
    if ($nav_menu_selected_id) {
        $most_used_url = esc_url(add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg($removed_args)));
        $view_all_url = esc_url(add_query_arg($taxonomy_name . '-tab', 'all', remove_query_arg($removed_args)));
        $search_url = esc_url(add_query_arg($taxonomy_name . '-tab', 'search', remove_query_arg($removed_args)));
    }
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    echo $most_used_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    echo esc_html($taxonomy->labels->most_used);
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    echo $view_all_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    echo $search_url;
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?> ">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms(array('taxonomy' => $taxonomy_name, 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?> ">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms(array('taxonomy' => $taxonomy_name, 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<label for="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="screen-reader-text"><?php 
    _e('Search');
    ?></label>
				<input type="search" class="quick-search" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" id="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'small quick-search-submit hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls wp-clearfix" data-items-type="taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>">
			<span class="list-controls hide-if-no-js">
				<input type="checkbox"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> id="<?php 
    echo esc_attr($taxonomy_name . '-tab');
    ?>" class="select-all" />
				<label for="<?php 
    echo esc_attr($taxonomy_name . '-tab');
    ?>"><?php 
    _e('Select All');
    ?></label>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 5.3

/**
 * Displays a meta box for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $object Not used.
 * @param array  $box {
 *     Taxonomy menu item meta box arguments.
 *
 *     @type string $id       Meta box 'id' attribute.
 *     @type string $title    Meta box title.
 *     @type string $callback Meta box display callback.
 *     @type object $args     Extra meta box arguments (the taxonomy object for this meta box).
 * }
 */
function wp_nav_menu_item_taxonomy_meta_box($object, $box)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $box['args']->name;
    $taxonomy = get_taxonomy($taxonomy_name);
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$taxonomy_name . '-tab']) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('taxonomy' => $taxonomy_name, 'child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms($taxonomy_name, array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($taxonomy_name . '-tab' => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => '<span aria-label="' . esc_attr__('Previous page') . '">' . __('&laquo;') . '</span>', 'next_text' => '<span aria-label="' . esc_attr__('Next page') . '">' . __('&raquo;') . '</span>', 'before_page_number' => '<span class="screen-reader-text">' . __('Page') . '</span> ', 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$taxonomy_name . '-tab']) && in_array($_REQUEST[$taxonomy_name . '-tab'], array('all', 'most-used', 'search'))) {
        $current_tab = $_REQUEST[$taxonomy_name . '-tab'];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    $most_used_url = '';
    $view_all_url = '';
    $search_url = '';
    if ($nav_menu_selected_id) {
        $most_used_url = esc_url(add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg($removed_args)));
        $view_all_url = esc_url(add_query_arg($taxonomy_name . '-tab', 'all', remove_query_arg($removed_args)));
        $search_url = esc_url(add_query_arg($taxonomy_name . '-tab', 'search', remove_query_arg($removed_args)));
    }
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    echo $most_used_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    echo esc_html($taxonomy->labels->most_used);
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    echo $view_all_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    echo $search_url;
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?> ">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms(array('taxonomy' => $taxonomy_name, 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?> ">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms(array('taxonomy' => $taxonomy_name, 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<label for="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="screen-reader-text"><?php 
    _e('Search');
    ?></label>
				<input type="search" class="quick-search" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" id="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'small quick-search-submit hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls wp-clearfix" data-items-type="taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>">
			<span class="list-controls hide-if-no-js">
				<input type="checkbox" id="<?php 
    echo esc_attr($taxonomy_name . '-tab');
    ?>" class="select-all" />
				<label for="<?php 
    echo esc_attr($taxonomy_name . '-tab');
    ?>"><?php 
    _e('Select All');
    ?></label>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 5.1

/**
 * Displays a meta box for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $object Not used.
 * @param array  $box {
 *     Taxonomy menu item meta box arguments.
 *
 *     @type string $id       Meta box 'id' attribute.
 *     @type string $title    Meta box title.
 *     @type string $callback Meta box display callback.
 *     @type object $args     Extra meta box arguments (the taxonomy object for this meta box).
 * }
 */
function wp_nav_menu_item_taxonomy_meta_box($object, $box)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $box['args']->name;
    $taxonomy = get_taxonomy($taxonomy_name);
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$taxonomy_name . '-tab']) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($taxonomy_name, $args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms($taxonomy_name, array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($taxonomy_name . '-tab' => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => '<span aria-label="' . esc_attr__('Previous page') . '">' . __('&laquo;') . '</span>', 'next_text' => '<span aria-label="' . esc_attr__('Next page') . '">' . __('&raquo;') . '</span>', 'before_page_number' => '<span class="screen-reader-text">' . __('Page') . '</span> ', 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$taxonomy_name . '-tab']) && in_array($_REQUEST[$taxonomy_name . '-tab'], array('all', 'most-used', 'search'))) {
        $current_tab = $_REQUEST[$taxonomy_name . '-tab'];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    $most_used_url = $view_all_url = $search_url = '';
    if ($nav_menu_selected_id) {
        $most_used_url = esc_url(add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg($removed_args)));
        $view_all_url = esc_url(add_query_arg($taxonomy_name . '-tab', 'all', remove_query_arg($removed_args)));
        $search_url = esc_url(add_query_arg($taxonomy_name . '-tab', 'search', remove_query_arg($removed_args)));
    }
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    echo $most_used_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    echo esc_html($taxonomy->labels->most_used);
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    echo $view_all_url;
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    echo $search_url;
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?> ">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms($taxonomy_name, array('orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?> ">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms($taxonomy_name, array('name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<label for="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="screen-reader-text"><?php 
    _e('Search');
    ?></label>
				<input type="search" class="quick-search" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" id="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'small quick-search-submit hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls wp-clearfix">
			<span class="list-controls">
				<a href="
				<?php 
    echo esc_url(add_query_arg(array($taxonomy_name . '-tab' => 'all', 'selectall' => 1), remove_query_arg($removed_args)));
    ?>
				#taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="select-all aria-button-if-js"><?php 
    _e('Select All');
    ?></a>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 4.9

/**
 * Displays a meta box for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $object Not used.
 * @param array  $box {
 *     Taxonomy menu item meta box arguments.
 *
 *     @type string $id       Meta box 'id' attribute.
 *     @type string $title    Meta box title.
 *     @type string $callback Meta box display callback.
 *     @type object $args     Extra meta box arguments (the taxonomy object for this meta box).
 * }
 */
function wp_nav_menu_item_taxonomy_meta_box($object, $box)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $box['args']->name;
    $taxonomy = get_taxonomy($taxonomy_name);
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$taxonomy_name . '-tab']) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($taxonomy_name, $args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms($taxonomy_name, array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($taxonomy_name . '-tab' => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => '<span aria-label="' . esc_attr__('Previous page') . '">' . __('&laquo;') . '</span>', 'next_text' => '<span aria-label="' . esc_attr__('Next page') . '">' . __('&raquo;') . '</span>', 'before_page_number' => '<span class="screen-reader-text">' . __('Page') . '</span> ', 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$taxonomy_name . '-tab']) && in_array($_REQUEST[$taxonomy_name . '-tab'], array('all', 'most-used', 'search'))) {
        $current_tab = $_REQUEST[$taxonomy_name . '-tab'];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    echo esc_html($taxonomy->labels->most_used);
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'all', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'search', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms($taxonomy_name, array('orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms($taxonomy_name, array('name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<label for="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="screen-reader-text"><?php 
    _e('Search');
    ?></label>
				<input type="search" class="quick-search" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" id="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'small quick-search-submit hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls wp-clearfix">
			<span class="list-controls">
				<a href="<?php 
    echo esc_url(add_query_arg(array($taxonomy_name . '-tab' => 'all', 'selectall' => 1), remove_query_arg($removed_args)));
    ?>#taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="select-all aria-button-if-js"><?php 
    _e('Select All');
    ?></a>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 4.7

/**
 * Displays a meta box for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $object Not used.
 * @param array  $box {
 *     Taxonomy menu item meta box arguments.
 *
 *     @type string $id       Meta box 'id' attribute.
 *     @type string $title    Meta box title.
 *     @type string $callback Meta box display callback.
 *     @type object $args     Extra meta box arguments (the taxonomy object for this meta box).
 * }
 */
function wp_nav_menu_item_taxonomy_meta_box($object, $box)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $box['args']->name;
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$taxonomy_name . '-tab']) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($taxonomy_name, $args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms($taxonomy_name, array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($taxonomy_name . '-tab' => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => '<span aria-label="' . esc_attr__('Previous page') . '">' . __('&laquo;') . '</span>', 'next_text' => '<span aria-label="' . esc_attr__('Next page') . '">' . __('&raquo;') . '</span>', 'before_page_number' => '<span class="screen-reader-text">' . __('Page') . '</span> ', 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$taxonomy_name . '-tab']) && in_array($_REQUEST[$taxonomy_name . '-tab'], array('all', 'most-used', 'search'))) {
        $current_tab = $_REQUEST[$taxonomy_name . '-tab'];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    _e('Most Used');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'all', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'search', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms($taxonomy_name, array('orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms($taxonomy_name, array('name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<label for="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="screen-reader-text"><?php 
    _e('Search');
    ?></label>
				<input type="search" class="quick-search" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" id="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'small quick-search-submit hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls wp-clearfix">
			<span class="list-controls">
				<a href="<?php 
    echo esc_url(add_query_arg(array($taxonomy_name . '-tab' => 'all', 'selectall' => 1), remove_query_arg($removed_args)));
    ?>#taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="select-all aria-button-if-js"><?php 
    _e('Select All');
    ?></a>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 4.6

/**
 * Displays a meta box for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $object Not used.
 * @param array  $box {
 *     Taxonomy menu item meta box arguments.
 *
 *     @type string $id       Meta box 'id' attribute.
 *     @type string $title    Meta box title.
 *     @type string $callback Meta box display callback.
 *     @type object $args     Extra meta box arguments (the taxonomy object for this meta box).
 * }
 */
function wp_nav_menu_item_taxonomy_meta_box($object, $box)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $box['args']->name;
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$taxonomy_name . '-tab']) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($taxonomy_name, $args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms($taxonomy_name, array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($taxonomy_name . '-tab' => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => __('&laquo;'), 'next_text' => __('&raquo;'), 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$taxonomy_name . '-tab']) && in_array($_REQUEST[$taxonomy_name . '-tab'], array('all', 'most-used', 'search'))) {
        $current_tab = $_REQUEST[$taxonomy_name . '-tab'];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    _e('Most Used');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'all', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'search', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms($taxonomy_name, array('orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms($taxonomy_name, array('name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<label for="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="screen-reader-text"><?php 
    _e('Search');
    ?></label>
				<input type="search" class="quick-search" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" id="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls wp-clearfix">
			<span class="list-controls">
				<a href="<?php 
    echo esc_url(add_query_arg(array($taxonomy_name . '-tab' => 'all', 'selectall' => 1), remove_query_arg($removed_args)));
    ?>#taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="select-all"><?php 
    _e('Select All');
    ?></a>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button-secondary submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 4.5

/**
 * Displays a metabox for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $object Not used.
 * @param string $taxonomy The taxonomy object.
 */
function wp_nav_menu_item_taxonomy_meta_box($object, $taxonomy)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $taxonomy['args']->name;
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$taxonomy_name . '-tab']) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($taxonomy_name, $args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms($taxonomy_name, array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($taxonomy_name . '-tab' => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => __('&laquo;'), 'next_text' => __('&raquo;'), 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$taxonomy_name . '-tab']) && in_array($_REQUEST[$taxonomy_name . '-tab'], array('all', 'most-used', 'search'))) {
        $current_tab = $_REQUEST[$taxonomy_name . '-tab'];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    _e('Most Used');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'all', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'search', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms($taxonomy_name, array('orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms($taxonomy_name, array('name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<label for="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="screen-reader-text"><?php 
    _e('Search');
    ?></label>
				<input type="search" class="quick-search" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" id="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls wp-clearfix">
			<span class="list-controls">
				<a href="<?php 
    echo esc_url(add_query_arg(array($taxonomy_name . '-tab' => 'all', 'selectall' => 1), remove_query_arg($removed_args)));
    ?>#taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="select-all"><?php 
    _e('Select All');
    ?></a>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button-secondary submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 4.3

/**
 * Displays a metabox for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @global int|string $nav_menu_selected_id
 *
 * @param string $object Not used.
 * @param string $taxonomy The taxonomy object.
 */
function wp_nav_menu_item_taxonomy_meta_box($object, $taxonomy)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $taxonomy['args']->name;
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$taxonomy_name . '-tab']) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($taxonomy_name, $args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms($taxonomy_name, array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($taxonomy_name . '-tab' => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => __('&laquo;'), 'next_text' => __('&raquo;'), 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$taxonomy_name . '-tab']) && in_array($_REQUEST[$taxonomy_name . '-tab'], array('all', 'most-used', 'search'))) {
        $current_tab = $_REQUEST[$taxonomy_name . '-tab'];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    _e('Most Used');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'all', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'search', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms($taxonomy_name, array('orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms($taxonomy_name, array('name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<input type="search" class="quick-search input-with-default-title" title="<?php 
    esc_attr_e('Search');
    ?>" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls">
			<span class="list-controls">
				<a href="<?php 
    echo esc_url(add_query_arg(array($taxonomy_name . '-tab' => 'all', 'selectall' => 1), remove_query_arg($removed_args)));
    ?>#taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="select-all"><?php 
    _e('Select All');
    ?></a>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button-secondary submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 4.0

/**
 * Displays a metabox for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @param string $object Not used.
 * @param string $taxonomy The taxonomy object.
 */
function wp_nav_menu_item_taxonomy_meta_box($object, $taxonomy)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $taxonomy['args']->name;
    // Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$taxonomy_name . '-tab']) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($taxonomy_name, $args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms($taxonomy_name, array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($taxonomy_name . '-tab' => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => __('&laquo;'), 'next_text' => __('&raquo;'), 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$taxonomy_name . '-tab']) && in_array($_REQUEST[$taxonomy_name . '-tab'], array('all', 'most-used', 'search'))) {
        $current_tab = $_REQUEST[$taxonomy_name . '-tab'];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    _e('Most Used');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'all', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'search', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms($taxonomy_name, array('orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms($taxonomy_name, array('name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<input type="search" class="quick-search input-with-default-title" title="<?php 
    esc_attr_e('Search');
    ?>" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls">
			<span class="list-controls">
				<a href="<?php 
    echo esc_url(add_query_arg(array($taxonomy_name . '-tab' => 'all', 'selectall' => 1), remove_query_arg($removed_args)));
    ?>#taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="select-all"><?php 
    _e('Select All');
    ?></a>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button-secondary submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 3.8

/**
 * Displays a metabox for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @param string $object Not used.
 * @param string $taxonomy The taxonomy object.
 */
function wp_nav_menu_item_taxonomy_meta_box($object, $taxonomy)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $taxonomy['args']->name;
    // paginate browsing for large numbers of objects
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$taxonomy_name . '-tab']) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($taxonomy_name, $args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms($taxonomy_name, array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($taxonomy_name . '-tab' => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => __('&laquo;'), 'next_text' => __('&raquo;'), 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$taxonomy_name . '-tab']) && in_array($_REQUEST[$taxonomy_name . '-tab'], array('all', 'most-used', 'search'))) {
        $current_tab = $_REQUEST[$taxonomy_name . '-tab'];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    _e('Most Used');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'all', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'search', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms($taxonomy_name, array('orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms($taxonomy_name, array('name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<input type="search" class="quick-search input-with-default-title" title="<?php 
    esc_attr_e('Search');
    ?>" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls">
			<span class="list-controls">
				<a href="<?php 
    echo esc_url(add_query_arg(array($taxonomy_name . '-tab' => 'all', 'selectall' => 1), remove_query_arg($removed_args)));
    ?>#taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="select-all"><?php 
    _e('Select All');
    ?></a>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button-secondary submit-add-to-menu right" value="<?php 
    esc_attr_e('Add to Menu');
    ?>" name="add-taxonomy-menu-item" id="<?php 
    echo esc_attr('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}

WordPress Version: 3.7

/**
 * Displays a metabox for a taxonomy menu item.
 *
 * @since 3.0.0
 *
 * @param string $object Not used.
 * @param string $taxonomy The taxonomy object.
 */
function wp_nav_menu_item_taxonomy_meta_box($object, $taxonomy)
{
    global $nav_menu_selected_id;
    $taxonomy_name = $taxonomy['args']->name;
    // paginate browsing for large numbers of objects
    $per_page = 50;
    $pagenum = (isset($_REQUEST[$taxonomy_name . '-tab']) && isset($_REQUEST['paged'])) ? absint($_REQUEST['paged']) : 1;
    $offset = (0 < $pagenum) ? $per_page * ($pagenum - 1) : 0;
    $args = array('child_of' => 0, 'exclude' => '', 'hide_empty' => false, 'hierarchical' => 1, 'include' => '', 'number' => $per_page, 'offset' => $offset, 'order' => 'ASC', 'orderby' => 'name', 'pad_counts' => false);
    $terms = get_terms($taxonomy_name, $args);
    if (!$terms || is_wp_error($terms)) {
        echo '<p>' . __('No items.') . '</p>';
        return;
    }
    $num_pages = ceil(wp_count_terms($taxonomy_name, array_merge($args, array('number' => '', 'offset' => ''))) / $per_page);
    $page_links = paginate_links(array('base' => add_query_arg(array($taxonomy_name . '-tab' => 'all', 'paged' => '%#%', 'item-type' => 'taxonomy', 'item-object' => $taxonomy_name)), 'format' => '', 'prev_text' => __('&laquo;'), 'next_text' => __('&raquo;'), 'total' => $num_pages, 'current' => $pagenum));
    $db_fields = false;
    if (is_taxonomy_hierarchical($taxonomy_name)) {
        $db_fields = array('parent' => 'parent', 'id' => 'term_id');
    }
    $walker = new Walker_Nav_Menu_Checklist($db_fields);
    $current_tab = 'most-used';
    if (isset($_REQUEST[$taxonomy_name . '-tab']) && in_array($_REQUEST[$taxonomy_name . '-tab'], array('all', 'most-used', 'search'))) {
        $current_tab = $_REQUEST[$taxonomy_name . '-tab'];
    }
    if (!empty($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $current_tab = 'search';
    }
    $removed_args = array('action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce');
    ?>
	<div id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="taxonomydiv">
		<ul id="taxonomy-<?php 
    echo $taxonomy_name;
    ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
			<li <?php 
    echo ('most-used' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-pop" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop">
					<?php 
    _e('Most Used');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('all' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-<?php 
    echo esc_attr($taxonomy_name);
    ?>-all" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'all', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all">
					<?php 
    _e('View All');
    ?>
				</a>
			</li>
			<li <?php 
    echo ('search' == $current_tab) ? ' class="tabs"' : '';
    ?>>
				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php 
    echo esc_attr($taxonomy_name);
    ?>" href="<?php 
    if ($nav_menu_selected_id) {
        echo esc_url(add_query_arg($taxonomy_name . '-tab', 'search', remove_query_arg($removed_args)));
    }
    ?>#tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
					<?php 
    _e('Search');
    ?>
				</a>
			</li>
		</ul><!-- .taxonomy-tabs -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-pop" class="tabs-panel <?php 
    echo ('most-used' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist-pop" class="categorychecklist form-no-clear" >
				<?php 
    $popular_terms = get_terms($taxonomy_name, array('orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false));
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args);
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<div id="tabs-panel-<?php 
    echo $taxonomy_name;
    ?>-all" class="tabs-panel tabs-panel-view-all <?php 
    echo ('all' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>">
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
			<ul id="<?php 
    echo $taxonomy_name;
    ?>checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
				<?php 
    $args['walker'] = $walker;
    echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args);
    ?>
			</ul>
			<?php 
    if (!empty($page_links)) {
        ?>
				<div class="add-menu-item-pagelinks">
					<?php 
        echo $page_links;
        ?>
				</div>
			<?php 
    }
    ?>
		</div><!-- /.tabs-panel -->

		<div class="tabs-panel <?php 
    echo ('search' == $current_tab) ? 'tabs-panel-active' : 'tabs-panel-inactive';
    ?>" id="tabs-panel-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>">
			<?php 
    if (isset($_REQUEST['quick-search-taxonomy-' . $taxonomy_name])) {
        $searched = esc_attr($_REQUEST['quick-search-taxonomy-' . $taxonomy_name]);
        $search_results = get_terms($taxonomy_name, array('name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false));
    } else {
        $searched = '';
        $search_results = array();
    }
    ?>
			<p class="quick-search-wrap">
				<input type="search" class="quick-search input-with-default-title" title="<?php 
    esc_attr_e('Search');
    ?>" value="<?php 
    echo $searched;
    ?>" name="quick-search-taxonomy-<?php 
    echo $taxonomy_name;
    ?>" />
				<span class="spinner"></span>
				<?php 
    submit_button(__('Search'), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array('id' => 'submit-quick-search-taxonomy-' . $taxonomy_name));
    ?>
			</p>

			<ul id="<?php 
    echo $taxonomy_name;
    ?>-search-checklist" data-wp-lists="list:<?php 
    echo $taxonomy_name;
    ?>" class="categorychecklist form-no-clear">
			<?php 
    if (!empty($search_results) && !is_wp_error($search_results)) {
        ?>
				<?php 
        $args['walker'] = $walker;
        echo walk_nav_menu_tree(array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args);
        ?>
			<?php 
    } elseif (is_wp_error($search_results)) {
        ?>
				<li><?php 
        echo $search_results->get_error_message();
        ?></li>
			<?php 
    } elseif (!empty($searched)) {
        ?>
				<li><?php 
        _e('No results found.');
        ?></li>
			<?php 
    }
    ?>
			</ul>
		</div><!-- /.tabs-panel -->

		<p class="button-controls">
			<span class="list-controls">
				<a href="<?php 
    echo esc_url(add_query_arg(array($taxonomy_name . '-tab' => 'all', 'selectall' => 1), remove_query_arg($removed_args)));
    ?>#taxonomy-<?php 
    echo $taxonomy_name;
    ?>" class="select-all"><?php 
    _e('Select All');
    ?></a>
			</span>

			<span class="add-to-menu">
				<input type="submit"<?php 
    wp_nav_menu_disabled_check($nav_menu_selected_id);
    ?> class="button-secondary submit-add-to-menu right" value="<?php 
    esc_attr_e(__('Add to Menu'));
    ?>" name="add-taxonomy-menu-item" id="<?php 
    esc_attr_e('submit-taxonomy-' . $taxonomy_name);
    ?>" />
				<span class="spinner"></span>
			</span>
		</p>

	</div><!-- /.taxonomydiv -->
	<?php 
}