wp_nav_menu_item_taxonomy_meta_box

Definition:
function wp_nav_menu_item_taxonomy_meta_box( $object, $taxonomy ) {}

Displays a metabox for a taxonomy menu item.

Parameters

  • string $object: Not used.
  • string $taxonomy: The taxonomy object.

Source code

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' => '',

		'include_last_update_time' => false,

		'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" 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" 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" 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>



		<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" class="list:<?php echo $taxonomy_name?> 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">

				<input type="text" 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; ?>" />

				<img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />

				<?php submit_button( __( 'Search' ), '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" class="list:<?php echo $taxonomy_name?> 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">

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

				<img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />

				<input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-taxonomy-menu-item" id="submit-taxonomy-<?php echo $taxonomy_name; ?>" />

			</span>

		</p>



	</div><!-- /.taxonomydiv -->

	<?php

}

3925

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: