wp_get_nav_menu_to_edit

Definition:
function wp_get_nav_menu_to_edit( $menu_id = 0 ) {}

Returns the menu formatted to edit.

Parameters

  • string $menu_id: The ID of the menu to format.

Return values

returns:The menu formatted to edit or error object on failure.

Defined filters

  • wp_edit_nav_menu_walker
    apply_filters( 'wp_edit_nav_menu_walker', 'Walker_Nav_Menu_Edit', $menu_id )

Source code

function wp_get_nav_menu_to_edit( $menu_id = 0 ) {

	$menu = wp_get_nav_menu_object( $menu_id );



	// If the menu exists, get its items.

	if ( is_nav_menu( $menu ) ) {

		$menu_items = wp_get_nav_menu_items( $menu->term_id, array('post_status' => 'any') );

		$result = '<div id="menu-instructions" class="post-body-plain';

		$result .= ( ! empty($menu_items) ) ? ' menu-instructions-inactive">' : '">';

		$result .= '<p>' . __('Select menu items (pages, categories, links) from the boxes at left to begin building your custom menu.') . '</p>';

		$result .= '</div>';



		if( empty($menu_items) )

			return $result . ' <ul class="menu" id="menu-to-edit"> </ul>';



		$walker_class_name = apply_filters( 'wp_edit_nav_menu_walker', 'Walker_Nav_Menu_Edit', $menu_id );



		if ( class_exists( $walker_class_name ) )

			$walker = new $walker_class_name;

		else

			return new WP_Error( 'menu_walker_not_exist', sprintf( __('The Walker class named <strong>%s</strong> does not exist.'), $walker_class_name ) );



		$some_pending_menu_items = $some_invalid_menu_items = false;

		foreach( (array) $menu_items as $menu_item ) {

			if ( isset( $menu_item->post_status ) && 'draft' == $menu_item->post_status )

				$some_pending_menu_items = true;

			if ( ! empty( $menu_item->_invalid ) )

				$some_invalid_menu_items = true;

		}



		if ( $some_pending_menu_items )

			$result .= '<div class="updated inline"><p>' . __('Click Save Menu to make pending menu items public.') . '</p></div>';



		if ( $some_invalid_menu_items )

			$result .= '<div class="error inline"><p>' . __('There are some invalid menu items. Please check or delete them.') . '</p></div>';



		$result .= '<ul class="menu" id="menu-to-edit"> ';

		$result .= walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $menu_items), 0, (object) array('walker' => $walker ) );

		$result .= ' </ul> ';

		return $result;

	} elseif ( is_wp_error( $menu ) ) {

		return $menu;

	}





}

3719

wp_get_nav_menu_object

Definition:
function wp_get_nav_menu_object( $menu ) {}

Returns a navigation menu object.

Parameters

  • string $menu: Menu id, slug or name

Return values

returns:false if $menu param isn’t supplied or term does not exist, menu object if successful.

Source code

function wp_get_nav_menu_object( $menu ) {

	if ( ! $menu )

		return false;



	$menu_obj = get_term( $menu, 'nav_menu' );



	if ( ! $menu_obj )

		$menu_obj = get_term_by( 'slug', $menu, 'nav_menu' );



	if ( ! $menu_obj )

		$menu_obj = get_term_by( 'name', $menu, 'nav_menu' );



	if ( ! $menu_obj )

		$menu_obj = false;



	return $menu_obj;

}

3717

wp_get_nav_menu_items

Definition:
function wp_get_nav_menu_items( $menu, $args = array() {}

Returns all menu items of a navigation menu.

Parameters

  • string $menu: menu name, id, or slug
  • string $args

Return values

returns:array of menu items, else false.

Defined filters

  • wp_get_nav_menu_items
    apply_filters( 'wp_get_nav_menu_items', $items, $menu, $args )

Source code

function wp_get_nav_menu_items( $menu, $args = array() ) {

	global $_wp_using_ext_object_cache;



	$menu = wp_get_nav_menu_object( $menu );



	if ( ! $menu )

		return false;



	static $fetched = array();



	$items = get_objects_in_term( $menu->term_id, 'nav_menu' );



	if ( empty( $items ) )

		return $items;



	$defaults = array( 'order' => 'ASC', 'orderby' => 'menu_order', 'post_type' => 'nav_menu_item',

		'post_status' => 'publish', 'output' => ARRAY_A, 'output_key' => 'menu_order', 'nopaging' => true,

		'update_post_term_cache' => false );

	$args = wp_parse_args( $args, $defaults );

	if ( count( $items ) > 1 )

		$args['include'] = implode( ',', $items );

	else

		$args['include'] = $items[0];



	$items = get_posts( $args );



	if ( is_wp_error( $items ) || ! is_array( $items ) )

		return false;



	// Get all posts and terms at once to prime the caches

	if ( empty( $fetched[$menu->term_id] ) || $_wp_using_ext_object_cache ) {

		$fetched[$menu->term_id] = true;

		$posts = array();

		$terms = array();

		foreach ( $items as $item ) {

			$object_id = get_post_meta( $item->ID, '_menu_item_object_id', true );

			$object    = get_post_meta( $item->ID, '_menu_item_object',    true );

			$type      = get_post_meta( $item->ID, '_menu_item_type',      true );



			if ( 'post_type' == $type )

				$posts[$object][] = $object_id;

			elseif ( 'taxonomy' == $type)

				$terms[$object][] = $object_id;

		}



		if ( ! empty( $posts ) ) {

			foreach ( array_keys($posts) as $post_type ) {

				get_posts( array('post__in' => $posts[$post_type], 'post_type' => $post_type, 'nopaging' => true, 'update_post_term_cache' => false) );

			}

		}

		unset($posts);



		if ( ! empty( $terms ) ) {

			foreach ( array_keys($terms) as $taxonomy ) {

				get_terms($taxonomy, array('include' => $terms[$taxonomy]) );

			}

		}

		unset($terms);

	}



	$items = array_map( 'wp_setup_nav_menu_item', $items );



	if ( ! is_admin() ) // Remove invalid items only in frontend

		$items = array_filter( $items, '_is_valid_nav_menu_item' );



	if ( ARRAY_A == $args['output'] ) {

		$GLOBALS['_menu_item_sort_prop'] = $args['output_key'];

		usort($items, '_sort_nav_menu_items');

		$i = 1;

		foreach( $items as $k => $item ) {

			$items[$k]->$args['output_key'] = $i++;

		}

	}



	return apply_filters( 'wp_get_nav_menu_items',  $items, $menu, $args );

}

3715

wp_get_nav_menus

Definition:
function wp_get_nav_menus( $args = array() {}

Returns all navigation menu objects.

Parameters

  • array $args: Array of arguments passed on to get_terms().

Return values

returns:menu objects

Defined filters

  • wp_get_nav_menus
    apply_filters( 'wp_get_nav_menus', get_terms( 'nav_menu', $args)

Source code

function wp_get_nav_menus( $args = array() ) {

	$defaults = array( 'hide_empty' => false, 'orderby' => 'none' );

	$args = wp_parse_args( $args, $defaults );

	return apply_filters( 'wp_get_nav_menus', get_terms( 'nav_menu',  $args), $args );

}

3713

wp_get_link_cats

Definition:
function wp_get_link_cats( $link_id = 0 ) {}

Retrieves the link categories associated with the link specified.

Parameters

  • int $link_id: Link ID to look up

Return values

returns:The requested link’s categories

Source code

function wp_get_link_cats( $link_id = 0 ) {



	$cats = wp_get_object_terms( $link_id, 'link_category', array('fields' => 'ids') );



	return array_unique( $cats );

}

3711