﻿id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc
23627,"Allow plugins to short-circuit wp_nav_menu, good for performance",kasparsd,,"We already have short-circuit filters for [http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/widgets.php#L180 widgets], [http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/option.php#L40 options], [http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/link-template.php#L115 links] that all can be used for retrieving items from non-persistent data store. It would make a lot of sense if this feature was also available to `wp_nav_menu` which is particularly DB heavy. 

My suggestion is to add `pre_wp_nav_menu` right after `wp_nav_menu_args`, like so:

{{{
	$args = wp_parse_args( $args, $defaults );
	$args = apply_filters( 'wp_nav_menu_args', $args );
	$args = (object) $args;

	// Allow plugins to short-circuit menu output
	$nav_menu = apply_filters( 'pre_wp_nav_menu', '', $args );

	if ( ! empty( $nav_menu ) && $args->echo )
		echo $nav_menu;
	elseif ( ! empty( $nav_menu ) )
		return $nav_menu;

	// Get the nav menu based on the requested menu
	$menu = wp_get_nav_menu_object( $args->menu );
}}}",enhancement,new,normal,Awaiting Review,Menus,3.5.1,normal,,has-patch,
