wp_nav_menu_item_taxonomy_meta_box
Displays a meta box for a taxonomy menu item.
Description
Parameters (2)
- 0. $object (string)
- The object.
- 1. $box (array)
- Taxonomy menu item meta box arguments.
Options
- id (string) =>
''
Meta box id attribute.
- title (string) =>
''
Meta box title.
- callback (string) =>
''
Meta box display callback.
array( /** * Meta box 'id' attribute. * * @type string * @default '' */ 'id' => '', /** * Meta box title. * * @type string * @default '' */ 'title' => '', /** * Meta box display callback. * * @type string * @default '' */ 'callback' => '' );
…
- id (string) =>
Usage
if ( !function_exists( 'wp_nav_menu_item_taxonomy_meta_box' ) ) { require_once ABSPATH . '/wp-admin/includes/nav-menu.php'; } // The object. $object = ''; // Taxonomy menu item meta box arguments. $box = array( 'id' => '', 'title' => '', 'callback' => '' ); // NOTICE! Understand what this does before running. $result = wp_nav_menu_item_taxonomy_meta_box($object, $box);
Defined (1)
The function is defined in the following location(s).
- /wp-admin/includes/nav-menu.php
- 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' ) . '">' . __( '«' ) . '</span>',
- 'next_text' => '<span aria-label="' . esc_attr__( 'Next page' ) . '">' . __( '»' ) . '</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 endif; ?>
- <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 endif; ?>
- </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 endif; ?>
- </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