Advertisements

wp_nav_menu_locations_meta_box

Definition:
function wp_nav_menu_locations_meta_box() {}

Displays a metabox for the nav menu theme locations.

Source code

function wp_nav_menu_locations_meta_box() {

	global $nav_menu_selected_id;



	if ( ! current_theme_supports( 'menus' ) ) {

		// We must only support widgets. Leave a message and bail.

		echo '<p class="howto">' . __('The current theme does not natively support menus, but you can use the “Custom Menu” widget to add any menus you create here to the theme’s sidebar.') . '</p>';

		return;

	}



	$locations = get_registered_nav_menus();

	$menus = wp_get_nav_menus();

	$menu_locations = get_nav_menu_locations();

	$num_locations = count( array_keys($locations) );



	echo '<p class="howto">' . sprintf( _n('Your theme supports %s menu. Select which menu you would like to use.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations ), number_format_i18n($num_locations) ) . '</p>';



	foreach ( $locations as $location => $description ) {

		?>

		<p>

			<label class="howto" for="locations-<?php echo $location; ?>">

				<span><?php echo $description; ?></span>

				<select name="menu-locations[<?php echo $location; ?>]" id="locations-<?php echo $location; ?>">

					<option value="0"></option>

					<?php foreach ( $menus as $menu ) : ?>

					<option<?php selected( isset( $menu_locations[ $location ] ) && $menu_locations[ $location ] == $menu->term_id ); ?>

						value="<?php echo $menu->term_id; ?>"><?php

						$truncated_name = wp_html_excerpt( $menu->name, 40 );

						echo $truncated_name == $menu->name ? $menu->name : trim( $truncated_name ) . '&hellip;';

					?></option>

					<?php endforeach; ?>

				</select>

			</label>

		</p>

	<?php

	}

	?>

	<p class="button-controls">

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

		<?php submit_button( __( 'Save' ), 'primary', 'nav-menu-locations', false, disabled( $nav_menu_selected_id, 0, false ) ); ?>

	</p>

	<?php

}

3927

Advertisements

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s

%d bloggers like this: