wp/wp-admin/includes/nav-menu.php
changeset 9 177826044cd9
parent 7 cf61fcea0001
child 16 a86126ab1dd4
--- a/wp/wp-admin/includes/nav-menu.php	Mon Oct 14 18:06:33 2019 +0200
+++ b/wp/wp-admin/includes/nav-menu.php	Mon Oct 14 18:28:13 2019 +0200
@@ -21,10 +21,10 @@
  * @param array $request The unsanitized request values.
  */
 function _wp_ajax_menu_quick_search( $request = array() ) {
-	$args = array();
-	$type = isset( $request['type'] ) ? $request['type'] : '';
-	$object_type = isset( $request['object_type'] ) ? $request['object_type'] : '';
-	$query = isset( $request['q'] ) ? $request['q'] : '';
+	$args            = array();
+	$type            = isset( $request['type'] ) ? $request['type'] : '';
+	$object_type     = isset( $request['object_type'] ) ? $request['object_type'] : '';
+	$query           = isset( $request['q'] ) ? $request['q'] : '';
 	$response_format = isset( $request['response-format'] ) && in_array( $request['response-format'], array( 'json', 'markup' ) ) ? $request['response-format'] : 'json';
 
 	if ( 'markup' == $response_format ) {
@@ -36,13 +36,13 @@
 			if ( isset( $request['ID'] ) ) {
 				$object_id = (int) $request['ID'];
 				if ( 'markup' == $response_format ) {
-					echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', array( get_post( $object_id ) ) ), 0, (object) $args );
+					echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', array( get_post( $object_id ) ) ), 0, (object) $args );
 				} elseif ( 'json' == $response_format ) {
 					echo wp_json_encode(
 						array(
-							'ID' => $object_id,
+							'ID'         => $object_id,
 							'post_title' => get_the_title( $object_id ),
-							'post_type' => get_post_type( $object_id ),
+							'post_type'  => get_post_type( $object_id ),
 						)
 					);
 					echo "\n";
@@ -52,26 +52,24 @@
 			if ( isset( $request['ID'] ) ) {
 				$object_id = (int) $request['ID'];
 				if ( 'markup' == $response_format ) {
-					echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', array( get_term( $object_id, $object_type ) ) ), 0, (object) $args );
+					echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', array( get_term( $object_id, $object_type ) ) ), 0, (object) $args );
 				} elseif ( 'json' == $response_format ) {
 					$post_obj = get_term( $object_id, $object_type );
 					echo wp_json_encode(
 						array(
-							'ID' => $object_id,
+							'ID'         => $object_id,
 							'post_title' => $post_obj->name,
-							'post_type' => $object_type,
+							'post_type'  => $object_type,
 						)
 					);
 					echo "\n";
 				}
 			}
-
 		}
-
-	} elseif ( preg_match('/quick-search-(posttype|taxonomy)-([a-zA-Z_-]*\b)/', $type, $matches) ) {
+	} elseif ( preg_match( '/quick-search-(posttype|taxonomy)-([a-zA-Z_-]*\b)/', $type, $matches ) ) {
 		if ( 'posttype' == $matches[1] && get_post_type_object( $matches[2] ) ) {
 			$post_type_obj = _wp_nav_menu_meta_box_object( get_post_type_object( $matches[2] ) );
-			$args = array_merge(
+			$args          = array_merge(
 				$args,
 				array(
 					'no_found_rows'          => true,
@@ -93,34 +91,38 @@
 				$post = $search_results_query->next_post();
 				if ( 'markup' == $response_format ) {
 					$var_by_ref = $post->ID;
-					echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', array( get_post( $var_by_ref ) ) ), 0, (object) $args );
+					echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', array( get_post( $var_by_ref ) ) ), 0, (object) $args );
 				} elseif ( 'json' == $response_format ) {
 					echo wp_json_encode(
 						array(
-							'ID' => $post->ID,
+							'ID'         => $post->ID,
 							'post_title' => get_the_title( $post->ID ),
-							'post_type' => $matches[2],
+							'post_type'  => $matches[2],
 						)
 					);
 					echo "\n";
 				}
 			}
 		} elseif ( 'taxonomy' == $matches[1] ) {
-			$terms = get_terms( $matches[2], array(
-				'name__like' => $query,
-				'number' => 10,
-			));
-			if ( empty( $terms ) || is_wp_error( $terms ) )
+			$terms = get_terms(
+				array(
+					'taxonomy'   => $matches[2],
+					'name__like' => $query,
+					'number'     => 10,
+				)
+			);
+			if ( empty( $terms ) || is_wp_error( $terms ) ) {
 				return;
+			}
 			foreach ( (array) $terms as $term ) {
 				if ( 'markup' == $response_format ) {
-					echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', array( $term ) ), 0, (object) $args );
+					echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', array( $term ) ), 0, (object) $args );
 				} elseif ( 'json' == $response_format ) {
 					echo wp_json_encode(
 						array(
-							'ID' => $term->term_id,
+							'ID'         => $term->term_id,
 							'post_title' => $term->name,
-							'post_type' => $matches[2],
+							'post_type'  => $matches[2],
 						)
 					);
 					echo "\n";
@@ -134,7 +136,7 @@
  * Register nav menu meta boxes and advanced menu items.
  *
  * @since 3.0.0
- **/
+ */
 function wp_nav_menu_setup() {
 	// Register meta boxes
 	wp_nav_menu_post_type_meta_boxes();
@@ -147,9 +149,18 @@
 	// If first time editing, disable advanced items by default.
 	if ( false === get_user_option( 'managenav-menuscolumnshidden' ) ) {
 		$user = wp_get_current_user();
-		update_user_option($user->ID, 'managenav-menuscolumnshidden',
-			array( 0 => 'link-target', 1 => 'css-classes', 2 => 'xfn', 3 => 'description', 4 => 'title-attribute', ),
-			true);
+		update_user_option(
+			$user->ID,
+			'managenav-menuscolumnshidden',
+			array(
+				0 => 'link-target',
+				1 => 'css-classes',
+				2 => 'xfn',
+				3 => 'description',
+				4 => 'title-attribute',
+			),
+			true
+		);
 	}
 }
 
@@ -159,19 +170,20 @@
  * @since 3.0.0
  *
  * @global array $wp_meta_boxes
- **/
+ */
 function wp_initial_nav_menu_meta_boxes() {
 	global $wp_meta_boxes;
 
-	if ( get_user_option( 'metaboxhidden_nav-menus' ) !== false || ! is_array($wp_meta_boxes) )
+	if ( get_user_option( 'metaboxhidden_nav-menus' ) !== false || ! is_array( $wp_meta_boxes ) ) {
 		return;
+	}
 
 	$initial_meta_boxes = array( 'add-post-type-page', 'add-post-type-post', 'add-custom-links', 'add-category' );
-	$hidden_meta_boxes = array();
+	$hidden_meta_boxes  = array();
 
-	foreach ( array_keys($wp_meta_boxes['nav-menus']) as $context ) {
-		foreach ( array_keys($wp_meta_boxes['nav-menus'][$context]) as $priority ) {
-			foreach ( $wp_meta_boxes['nav-menus'][$context][$priority] as $box ) {
+	foreach ( array_keys( $wp_meta_boxes['nav-menus'] ) as $context ) {
+		foreach ( array_keys( $wp_meta_boxes['nav-menus'][ $context ] ) as $priority ) {
+			foreach ( $wp_meta_boxes['nav-menus'][ $context ][ $priority ] as $box ) {
 				if ( in_array( $box['id'], $initial_meta_boxes ) ) {
 					unset( $box['id'] );
 				} else {
@@ -193,8 +205,9 @@
 function wp_nav_menu_post_type_meta_boxes() {
 	$post_types = get_post_types( array( 'show_in_nav_menus' => true ), 'object' );
 
-	if ( ! $post_types )
+	if ( ! $post_types ) {
 		return;
+	}
 
 	foreach ( $post_types as $post_type ) {
 		/**
@@ -227,8 +240,9 @@
 function wp_nav_menu_taxonomy_meta_boxes() {
 	$taxonomies = get_taxonomies( array( 'show_in_nav_menus' => true ), 'object' );
 
-	if ( !$taxonomies )
+	if ( ! $taxonomies ) {
 		return;
+	}
 
 	foreach ( $taxonomies as $tax ) {
 		/** This filter is documented in wp-admin/includes/nav-menu.php */
@@ -253,8 +267,9 @@
 function wp_nav_menu_disabled_check( $nav_menu_selected_id ) {
 	global $one_theme_location_no_menus;
 
-	if ( $one_theme_location_no_menus )
+	if ( $one_theme_location_no_menus ) {
 		return false;
+	}
 
 	return disabled( $nav_menu_selected_id, 0 );
 }
@@ -287,7 +302,7 @@
 
 		<p class="button-controls wp-clearfix">
 			<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-custom-menu-item" id="submit-customlinkdiv" />
+				<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-custom-menu-item" id="submit-customlinkdiv" />
 				<span class="spinner"></span>
 			</span>
 		</p>
@@ -321,26 +336,27 @@
 
 	// Paginate browsing for large numbers of post objects.
 	$per_page = 50;
-	$pagenum = isset( $_REQUEST[$post_type_name . '-tab'] ) && isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1;
-	$offset = 0 < $pagenum ? $per_page * ( $pagenum - 1 ) : 0;
+	$pagenum  = isset( $_REQUEST[ $post_type_name . '-tab' ] ) && isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1;
+	$offset   = 0 < $pagenum ? $per_page * ( $pagenum - 1 ) : 0;
 
 	$args = array(
-		'offset' => $offset,
-		'order' => 'ASC',
-		'orderby' => 'title',
-		'posts_per_page' => $per_page,
-		'post_type' => $post_type_name,
-		'suppress_filters' => true,
+		'offset'                 => $offset,
+		'order'                  => 'ASC',
+		'orderby'                => 'title',
+		'posts_per_page'         => $per_page,
+		'post_type'              => $post_type_name,
+		'suppress_filters'       => true,
 		'update_post_term_cache' => false,
-		'update_post_meta_cache' => false
+		'update_post_meta_cache' => false,
 	);
 
-	if ( isset( $box['args']->_default_query ) )
-		$args = array_merge($args, (array) $box['args']->_default_query );
+	if ( isset( $box['args']->_default_query ) ) {
+		$args = array_merge( $args, (array) $box['args']->_default_query );
+	}
 
 	// @todo transient caching of these results with proper invalidation on updating of a post of this type
 	$get_posts = new WP_Query;
-	$posts = $get_posts->query( $args );
+	$posts     = $get_posts->query( $args );
 	if ( ! $get_posts->post_count ) {
 		echo '<p>' . __( 'No items.' ) . '</p>';
 		return;
@@ -348,36 +364,41 @@
 
 	$num_pages = $get_posts->max_num_pages;
 
-	$page_links = paginate_links( array(
-		'base' => add_query_arg(
-			array(
-				$post_type_name . '-tab' => 'all',
-				'paged' => '%#%',
-				'item-type' => 'post_type',
-				'item-object' => $post_type_name,
-			)
-		),
-		'format' => '',
-		'prev_text'          => '<span aria-label="' . esc_attr__( 'Previous page' ) . '">' . __( '&laquo;' ) . '</span>',
-		'next_text'          => '<span aria-label="' . esc_attr__( 'Next page' ) . '">' . __( '&raquo;' ) . '</span>',
-		'before_page_number' => '<span class="screen-reader-text">' . __( 'Page' ) . '</span> ',
-		'total'   => $num_pages,
-		'current' => $pagenum
-	));
+	$page_links = paginate_links(
+		array(
+			'base'               => add_query_arg(
+				array(
+					$post_type_name . '-tab' => 'all',
+					'paged'                  => '%#%',
+					'item-type'              => 'post_type',
+					'item-object'            => $post_type_name,
+				)
+			),
+			'format'             => '',
+			'prev_text'          => '<span aria-label="' . esc_attr__( 'Previous page' ) . '">' . __( '&laquo;' ) . '</span>',
+			'next_text'          => '<span aria-label="' . esc_attr__( 'Next page' ) . '">' . __( '&raquo;' ) . '</span>',
+			'before_page_number' => '<span class="screen-reader-text">' . __( 'Page' ) . '</span> ',
+			'total'              => $num_pages,
+			'current'            => $pagenum,
+		)
+	);
 
 	$db_fields = false;
 	if ( is_post_type_hierarchical( $post_type_name ) ) {
-		$db_fields = array( 'parent' => 'post_parent', 'id' => 'ID' );
+		$db_fields = array(
+			'parent' => 'post_parent',
+			'id'     => 'ID',
+		);
 	}
 
 	$walker = new Walker_Nav_Menu_Checklist( $db_fields );
 
 	$current_tab = 'most-recent';
-	if ( isset( $_REQUEST[$post_type_name . '-tab'] ) && in_array( $_REQUEST[$post_type_name . '-tab'], array('all', 'search') ) ) {
-		$current_tab = $_REQUEST[$post_type_name . '-tab'];
+	if ( isset( $_REQUEST[ $post_type_name . '-tab' ] ) && in_array( $_REQUEST[ $post_type_name . '-tab' ], array( 'all', 'search' ) ) ) {
+		$current_tab = $_REQUEST[ $post_type_name . '-tab' ];
 	}
 
-	if ( ! empty( $_REQUEST['quick-search-posttype-' . $post_type_name] ) ) {
+	if ( ! empty( $_REQUEST[ 'quick-search-posttype-' . $post_type_name ] ) ) {
 		$current_tab = 'search';
 	}
 
@@ -390,33 +411,44 @@
 		'_wpnonce',
 	);
 
+	$most_recent_url = $view_all_url = $search_url = '';
+	if ( $nav_menu_selected_id ) {
+		$most_recent_url = esc_url( add_query_arg( $post_type_name . '-tab', 'most-recent', remove_query_arg( $removed_args ) ) );
+		$view_all_url    = esc_url( add_query_arg( $post_type_name . '-tab', 'all', remove_query_arg( $removed_args ) ) );
+		$search_url      = esc_url( add_query_arg( $post_type_name . '-tab', 'search', remove_query_arg( $removed_args ) ) );
+	}
 	?>
 	<div id="posttype-<?php echo $post_type_name; ?>" class="posttypediv">
 		<ul id="posttype-<?php echo $post_type_name; ?>-tabs" class="posttype-tabs add-menu-item-tabs">
 			<li <?php echo ( 'most-recent' == $current_tab ? ' class="tabs"' : '' ); ?>>
-				<a class="nav-tab-link" data-type="tabs-panel-posttype-<?php echo esc_attr( $post_type_name ); ?>-most-recent" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($post_type_name . '-tab', 'most-recent', remove_query_arg($removed_args))); ?>#tabs-panel-posttype-<?php echo $post_type_name; ?>-most-recent">
+				<a class="nav-tab-link" data-type="tabs-panel-posttype-<?php echo esc_attr( $post_type_name ); ?>-most-recent" href="<?php echo $most_recent_url; ?>#tabs-panel-posttype-<?php echo $post_type_name; ?>-most-recent">
 					<?php _e( 'Most Recent' ); ?>
 				</a>
 			</li>
 			<li <?php echo ( 'all' == $current_tab ? ' class="tabs"' : '' ); ?>>
-				<a class="nav-tab-link" data-type="<?php echo esc_attr( $post_type_name ); ?>-all" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($post_type_name . '-tab', 'all', remove_query_arg($removed_args))); ?>#<?php echo $post_type_name; ?>-all">
+				<a class="nav-tab-link" data-type="<?php echo esc_attr( $post_type_name ); ?>-all" href="<?php echo $view_all_url; ?>#<?php echo $post_type_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-posttype-<?php echo esc_attr( $post_type_name ); ?>-search" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($post_type_name . '-tab', 'search', remove_query_arg($removed_args))); ?>#tabs-panel-posttype-<?php echo $post_type_name; ?>-search">
-					<?php _e( 'Search'); ?>
+				<a class="nav-tab-link" data-type="tabs-panel-posttype-<?php echo esc_attr( $post_type_name ); ?>-search" href="<?php echo $search_url; ?>#tabs-panel-posttype-<?php echo $post_type_name; ?>-search">
+					<?php _e( 'Search' ); ?>
 				</a>
 			</li>
 		</ul><!-- .posttype-tabs -->
 
-		<div id="tabs-panel-posttype-<?php echo $post_type_name; ?>-most-recent" class="tabs-panel <?php
-			echo ( 'most-recent' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
-		?>">
+		<div id="tabs-panel-posttype-<?php echo $post_type_name; ?>-most-recent" class="tabs-panel <?php echo ( 'most-recent' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' ); ?>">
 			<ul id="<?php echo $post_type_name; ?>checklist-most-recent" class="categorychecklist form-no-clear">
 				<?php
-				$recent_args = array_merge( $args, array( 'orderby' => 'post_date', 'order' => 'DESC', 'posts_per_page' => 15 ) );
-				$most_recent = $get_posts->query( $recent_args );
+				$recent_args    = array_merge(
+					$args,
+					array(
+						'orderby'        => 'post_date',
+						'order'          => 'DESC',
+						'posts_per_page' => 15,
+					)
+				);
+				$most_recent    = $get_posts->query( $recent_args );
 				$args['walker'] = $walker;
 
 				/**
@@ -428,10 +460,10 @@
 				 * @since 4.3.0
 				 * @since 4.9.0 Added the `$recent_args` parameter.
 				 *
-				 * @param array $most_recent An array of post objects being listed.
-				 * @param array $args        An array of WP_Query arguments for the meta box.
-				 * @param array $box         Arguments passed to wp_nav_menu_item_post_type_meta_box().
-				 * @param array $recent_args An array of WP_Query arguments for 'Most Recent' tab.
+				 * @param WP_Post[] $most_recent An array of post objects being listed.
+				 * @param array     $args        An array of `WP_Query` arguments for the meta box.
+				 * @param array     $box         Arguments passed to `wp_nav_menu_item_post_type_meta_box()`.
+				 * @param array     $recent_args An array of `WP_Query` arguments for 'Most Recent' tab.
 				 */
 				$most_recent = apply_filters( "nav_menu_items_{$post_type_name}_recent", $most_recent, $args, $box, $recent_args );
 
@@ -440,15 +472,20 @@
 			</ul>
 		</div><!-- /.tabs-panel -->
 
-		<div class="tabs-panel <?php
-			echo ( 'search' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
-		?>" id="tabs-panel-posttype-<?php echo $post_type_name; ?>-search">
+		<div class="tabs-panel <?php echo ( 'search' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' ); ?>" id="tabs-panel-posttype-<?php echo $post_type_name; ?>-search">
 			<?php
-			if ( isset( $_REQUEST['quick-search-posttype-' . $post_type_name] ) ) {
-				$searched = esc_attr( $_REQUEST['quick-search-posttype-' . $post_type_name] );
-				$search_results = get_posts( array( 's' => $searched, 'post_type' => $post_type_name, 'fields' => 'all', 'order' => 'DESC', ) );
+			if ( isset( $_REQUEST[ 'quick-search-posttype-' . $post_type_name ] ) ) {
+				$searched       = esc_attr( $_REQUEST[ 'quick-search-posttype-' . $post_type_name ] );
+				$search_results = get_posts(
+					array(
+						's'         => $searched,
+						'post_type' => $post_type_name,
+						'fields'    => 'all',
+						'order'     => 'DESC',
+					)
+				);
 			} else {
-				$searched = '';
+				$searched       = '';
 				$search_results = array();
 			}
 			?>
@@ -459,29 +496,27 @@
 				<?php submit_button( __( 'Search' ), 'small quick-search-submit hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-posttype-' . $post_type_name ) ); ?>
 			</p>
 
-			<ul id="<?php echo $post_type_name; ?>-search-checklist" data-wp-lists="list:<?php echo $post_type_name?>" class="categorychecklist form-no-clear">
+			<ul id="<?php echo $post_type_name; ?>-search-checklist" data-wp-lists="list:<?php echo $post_type_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 );
+				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>
+				<li><?php _e( 'No results found.' ); ?></li>
 			<?php endif; ?>
 			</ul>
 		</div><!-- /.tabs-panel -->
 
-		<div id="<?php echo $post_type_name; ?>-all" class="tabs-panel tabs-panel-view-all <?php
-			echo ( 'all' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
-		?>">
+		<div id="<?php echo $post_type_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 $post_type_name; ?>checklist" data-wp-lists="list:<?php echo $post_type_name?>" class="categorychecklist form-no-clear">
+			<ul id="<?php echo $post_type_name; ?>checklist" data-wp-lists="list:<?php echo $post_type_name; ?>" class="categorychecklist form-no-clear">
 				<?php
 				$args['walker'] = $walker;
 
@@ -490,43 +525,49 @@
 				 * page at the top of the list.
 				 */
 				if ( 'page' == $post_type_name ) {
-					$front_page = 'page' == get_option('show_on_front') ? (int) get_option( 'page_on_front' ) : 0;
+					$front_page = 'page' == get_option( 'show_on_front' ) ? (int) get_option( 'page_on_front' ) : 0;
 					if ( ! empty( $front_page ) ) {
-						$front_page_obj = get_post( $front_page );
+						$front_page_obj                = get_post( $front_page );
 						$front_page_obj->front_or_home = true;
 						array_unshift( $posts, $front_page_obj );
 					} else {
-						$_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval($_nav_menu_placeholder) - 1 : -1;
-						array_unshift( $posts, (object) array(
-							'front_or_home' => true,
-							'ID' => 0,
-							'object_id' => $_nav_menu_placeholder,
-							'post_content' => '',
-							'post_excerpt' => '',
-							'post_parent' => '',
-							'post_title' => _x('Home', 'nav menu home label'),
-							'post_type' => 'nav_menu_item',
-							'type' => 'custom',
-							'url' => home_url('/'),
-						) );
+						$_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval( $_nav_menu_placeholder ) - 1 : -1;
+						array_unshift(
+							$posts,
+							(object) array(
+								'front_or_home' => true,
+								'ID'            => 0,
+								'object_id'     => $_nav_menu_placeholder,
+								'post_content'  => '',
+								'post_excerpt'  => '',
+								'post_parent'   => '',
+								'post_title'    => _x( 'Home', 'nav menu home label' ),
+								'post_type'     => 'nav_menu_item',
+								'type'          => 'custom',
+								'url'           => home_url( '/' ),
+							)
+						);
 					}
 				}
 
 				$post_type = get_post_type_object( $post_type_name );
 
 				if ( $post_type->has_archive ) {
-					$_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval($_nav_menu_placeholder) - 1 : -1;
-					array_unshift( $posts, (object) array(
-						'ID' => 0,
-						'object_id' => $_nav_menu_placeholder,
-						'object'     => $post_type_name,
-						'post_content' => '',
-						'post_excerpt' => '',
-						'post_title' => $post_type->labels->archives,
-						'post_type' => 'nav_menu_item',
-						'type' => 'post_type_archive',
-						'url' => get_post_type_archive_link( $post_type_name ),
-					) );
+					$_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval( $_nav_menu_placeholder ) - 1 : -1;
+					array_unshift(
+						$posts,
+						(object) array(
+							'ID'           => 0,
+							'object_id'    => $_nav_menu_placeholder,
+							'object'       => $post_type_name,
+							'post_content' => '',
+							'post_excerpt' => '',
+							'post_title'   => $post_type->labels->archives,
+							'post_type'    => 'nav_menu_item',
+							'type'         => 'post_type_archive',
+							'url'          => get_post_type_archive_link( $post_type_name ),
+						)
+					);
 				}
 
 				/**
@@ -541,16 +582,17 @@
 				 *
 				 * @see WP_Query::query()
 				 *
-				 * @param array        $posts     The posts for the current post type.
-				 * @param array        $args      An array of WP_Query arguments.
+				 * @param object[]     $posts     The posts for the current post type. Mostly `WP_Post` objects, but
+				 *                                can also contain "fake" post objects to represent other menu items.
+				 * @param array        $args      An array of `WP_Query` arguments.
 				 * @param WP_Post_Type $post_type The current post type object for this menu item meta box.
 				 */
 				$posts = apply_filters( "nav_menu_items_{$post_type_name}", $posts, $args, $post_type );
 
-				$checkbox_items = walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $posts), 0, (object) $args );
+				$checkbox_items = walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', $posts ), 0, (object) $args );
 
 				if ( 'all' == $current_tab && ! empty( $_REQUEST['selectall'] ) ) {
-					$checkbox_items = preg_replace('/(type=(.)checkbox(\2))/', '$1 checked=$2checked$2', $checkbox_items);
+					$checkbox_items = preg_replace( '/(type=(.)checkbox(\2))/', '$1 checked=$2checked$2', $checkbox_items );
 
 				}
 
@@ -566,15 +608,19 @@
 
 		<p class="button-controls wp-clearfix">
 			<span class="list-controls">
-				<a href="<?php
-					echo esc_url( add_query_arg(
-						array(
-							$post_type_name . '-tab' => 'all',
-							'selectall' => 1,
-						),
-						remove_query_arg( $removed_args )
-					));
-				?>#posttype-<?php echo $post_type_name; ?>" class="select-all aria-button-if-js"><?php _e( 'Select All' ); ?></a>
+				<a href="
+				<?php
+					echo esc_url(
+						add_query_arg(
+							array(
+								$post_type_name . '-tab' => 'all',
+								'selectall'              => 1,
+							),
+							remove_query_arg( $removed_args )
+						)
+					);
+				?>
+				#posttype-<?php echo $post_type_name; ?>" class="select-all aria-button-if-js"><?php _e( 'Select All' ); ?></a>
 			</span>
 
 			<span class="add-to-menu">
@@ -607,65 +653,81 @@
 function wp_nav_menu_item_taxonomy_meta_box( $object, $box ) {
 	global $nav_menu_selected_id;
 	$taxonomy_name = $box['args']->name;
-	$taxonomy = get_taxonomy( $taxonomy_name );
+	$taxonomy      = get_taxonomy( $taxonomy_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;
+	$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,
+		'child_of'     => 0,
+		'exclude'      => '',
+		'hide_empty'   => false,
 		'hierarchical' => 1,
-		'include' => '',
-		'number' => $per_page,
-		'offset' => $offset,
-		'order' => 'ASC',
-		'orderby' => 'name',
-		'pad_counts' => false,
+		'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) ) {
+	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 );
+	$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' ) . '">' . __( '&laquo;' ) . '</span>',
-		'next_text'          => '<span aria-label="' . esc_attr__( 'Next page' ) . '">' . __( '&raquo;' ) . '</span>',
-		'before_page_number' => '<span class="screen-reader-text">' . __( 'Page' ) . '</span> ',
-		'total'   => $num_pages,
-		'current' => $pagenum
-	));
+	$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' ) . '">' . __( '&laquo;' ) . '</span>',
+			'next_text'          => '<span aria-label="' . esc_attr__( 'Next page' ) . '">' . __( '&raquo;' ) . '</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' );
+		$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 ( 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] ) ) {
+	if ( ! empty( $_REQUEST[ 'quick-search-taxonomy-' . $taxonomy_name ] ) ) {
 		$current_tab = 'search';
 	}
 
@@ -678,50 +740,60 @@
 		'_wpnonce',
 	);
 
+	$most_used_url = $view_all_url = $search_url = '';
+	if ( $nav_menu_selected_id ) {
+		$most_used_url = esc_url( add_query_arg( $taxonomy_name . '-tab', 'most-used', remove_query_arg( $removed_args ) ) );
+		$view_all_url  = esc_url( add_query_arg( $taxonomy_name . '-tab', 'all', remove_query_arg( $removed_args ) ) );
+		$search_url    = esc_url( add_query_arg( $taxonomy_name . '-tab', 'search', remove_query_arg( $removed_args ) ) );
+	}
 	?>
 	<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">
+				<a class="nav-tab-link" data-type="tabs-panel-<?php echo esc_attr( $taxonomy_name ); ?>-pop" href="<?php echo $most_used_url; ?>#tabs-panel-<?php echo $taxonomy_name; ?>-pop">
 					<?php echo esc_html( $taxonomy->labels->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">
+				<a class="nav-tab-link" data-type="tabs-panel-<?php echo esc_attr( $taxonomy_name ); ?>-all" href="<?php echo $view_all_url; ?>#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; ?>">
+				<a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>" href="<?php echo $search_url; ?>#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' );
-		?>">
+		<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 ) );
+				$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 );
+				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' );
-		?>">
+		<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">
+			<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 );
+				echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', $terms ), 0, (object) $args );
 				?>
 			</ul>
 			<?php if ( ! empty( $page_links ) ) : ?>
@@ -731,15 +803,22 @@
 			<?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; ?>">
+		<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 ) );
+			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 = '';
+				$searched       = '';
 				$search_results = array();
 			}
 			?>
@@ -750,31 +829,35 @@
 				<?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">
+			<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 );
+				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>
+				<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>
+				<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">
@@ -792,12 +875,12 @@
  *
  * @since 3.0.0
  *
- * @param int $menu_id The menu ID for which to save this item. $menu_id of 0 makes a draft, orphaned menu item.
- * @param array $menu_data The unsanitized posted menu item data.
- * @return array The database IDs of the items saved
+ * @param int     $menu_id   The menu ID for which to save this item. Value of 0 makes a draft, orphaned menu item. Default 0.
+ * @param array[] $menu_data The unsanitized POSTed menu item data.
+ * @return int[] The database IDs of the items saved
  */
 function wp_save_nav_menu_items( $menu_id = 0, $menu_data = array() ) {
-	$menu_id = (int) $menu_id;
+	$menu_id     = (int) $menu_id;
 	$items_saved = array();
 
 	if ( 0 == $menu_id || is_nav_menu( $menu_id ) ) {
@@ -833,19 +916,19 @@
 			}
 
 			$args = array(
-				'menu-item-db-id' => ( isset( $_item_object_data['menu-item-db-id'] ) ? $_item_object_data['menu-item-db-id'] : '' ),
-				'menu-item-object-id' => ( isset( $_item_object_data['menu-item-object-id'] ) ? $_item_object_data['menu-item-object-id'] : '' ),
-				'menu-item-object' => ( isset( $_item_object_data['menu-item-object'] ) ? $_item_object_data['menu-item-object'] : '' ),
-				'menu-item-parent-id' => ( isset( $_item_object_data['menu-item-parent-id'] ) ? $_item_object_data['menu-item-parent-id'] : '' ),
-				'menu-item-position' => ( isset( $_item_object_data['menu-item-position'] ) ? $_item_object_data['menu-item-position'] : '' ),
-				'menu-item-type' => ( isset( $_item_object_data['menu-item-type'] ) ? $_item_object_data['menu-item-type'] : '' ),
-				'menu-item-title' => ( isset( $_item_object_data['menu-item-title'] ) ? $_item_object_data['menu-item-title'] : '' ),
-				'menu-item-url' => ( isset( $_item_object_data['menu-item-url'] ) ? $_item_object_data['menu-item-url'] : '' ),
+				'menu-item-db-id'       => ( isset( $_item_object_data['menu-item-db-id'] ) ? $_item_object_data['menu-item-db-id'] : '' ),
+				'menu-item-object-id'   => ( isset( $_item_object_data['menu-item-object-id'] ) ? $_item_object_data['menu-item-object-id'] : '' ),
+				'menu-item-object'      => ( isset( $_item_object_data['menu-item-object'] ) ? $_item_object_data['menu-item-object'] : '' ),
+				'menu-item-parent-id'   => ( isset( $_item_object_data['menu-item-parent-id'] ) ? $_item_object_data['menu-item-parent-id'] : '' ),
+				'menu-item-position'    => ( isset( $_item_object_data['menu-item-position'] ) ? $_item_object_data['menu-item-position'] : '' ),
+				'menu-item-type'        => ( isset( $_item_object_data['menu-item-type'] ) ? $_item_object_data['menu-item-type'] : '' ),
+				'menu-item-title'       => ( isset( $_item_object_data['menu-item-title'] ) ? $_item_object_data['menu-item-title'] : '' ),
+				'menu-item-url'         => ( isset( $_item_object_data['menu-item-url'] ) ? $_item_object_data['menu-item-url'] : '' ),
 				'menu-item-description' => ( isset( $_item_object_data['menu-item-description'] ) ? $_item_object_data['menu-item-description'] : '' ),
-				'menu-item-attr-title' => ( isset( $_item_object_data['menu-item-attr-title'] ) ? $_item_object_data['menu-item-attr-title'] : '' ),
-				'menu-item-target' => ( isset( $_item_object_data['menu-item-target'] ) ? $_item_object_data['menu-item-target'] : '' ),
-				'menu-item-classes' => ( isset( $_item_object_data['menu-item-classes'] ) ? $_item_object_data['menu-item-classes'] : '' ),
-				'menu-item-xfn' => ( isset( $_item_object_data['menu-item-xfn'] ) ? $_item_object_data['menu-item-xfn'] : '' ),
+				'menu-item-attr-title'  => ( isset( $_item_object_data['menu-item-attr-title'] ) ? $_item_object_data['menu-item-attr-title'] : '' ),
+				'menu-item-target'      => ( isset( $_item_object_data['menu-item-target'] ) ? $_item_object_data['menu-item-target'] : '' ),
+				'menu-item-classes'     => ( isset( $_item_object_data['menu-item-classes'] ) ? $_item_object_data['menu-item-classes'] : '' ),
+				'menu-item-xfn'         => ( isset( $_item_object_data['menu-item-xfn'] ) ? $_item_object_data['menu-item-xfn'] : '' ),
 			);
 
 			$items_saved[] = wp_update_nav_menu_item( $menu_id, $_actual_db_id, $args );
@@ -870,24 +953,24 @@
 
 		if ( 'page' == $object->name ) {
 			$object->_default_query = array(
-				'orderby' => 'menu_order title',
+				'orderby'     => 'menu_order title',
 				'post_status' => 'publish',
 			);
 
-		// Posts should show only published items.
+			// Posts should show only published items.
 		} elseif ( 'post' == $object->name ) {
 			$object->_default_query = array(
 				'post_status' => 'publish',
 			);
 
-		// Categories should be in reverse chronological order.
+			// Categories should be in reverse chronological order.
 		} elseif ( 'category' == $object->name ) {
 			$object->_default_query = array(
 				'orderby' => 'id',
-				'order' => 'DESC',
+				'order'   => 'DESC',
 			);
 
-		// Custom post types should show only published items.
+			// Custom post types should show only published items.
 		} else {
 			$object->_default_query = array(
 				'post_status' => 'publish',
@@ -911,14 +994,15 @@
 
 	// 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>' . __( 'Add menu items from the column on the left.' ) . '</p>';
-		$result .= '</div>';
+		$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>' . __( 'Add menu items from the column on the left.' ) . '</p>';
+		$result    .= '</div>';
 
-		if ( empty($menu_items) )
+		if ( empty( $menu_items ) ) {
 			return $result . ' <ul class="menu" id="menu-to-edit"> </ul>';
+		}
 
 		/**
 		 * Filters the Walker class used when adding nav menu items.
@@ -933,9 +1017,11 @@
 		if ( class_exists( $walker_class_name ) ) {
 			$walker = new $walker_class_name;
 		} else {
-			return new WP_Error( 'menu_walker_not_exist',
+			return new WP_Error(
+				'menu_walker_not_exist',
 				/* translators: %s: walker class name */
-				sprintf( __( 'The Walker class named %s does not exist.' ),
+				sprintf(
+					__( 'The Walker class named %s does not exist.' ),
 					'<strong>' . $walker_class_name . '</strong>'
 				)
 			);
@@ -943,10 +1029,12 @@
 
 		$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 )
+			if ( isset( $menu_item->post_status ) && 'draft' == $menu_item->post_status ) {
 				$some_pending_menu_items = true;
-			if ( ! empty( $menu_item->_invalid ) )
+			}
+			if ( ! empty( $menu_item->_invalid ) ) {
 				$some_invalid_menu_items = true;
+			}
 		}
 
 		if ( $some_pending_menu_items ) {
@@ -958,7 +1046,7 @@
 		}
 
 		$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 .= 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 ) ) {
@@ -999,10 +1087,11 @@
 	$delete_timestamp = time() - ( DAY_IN_SECONDS * EMPTY_TRASH_DAYS );
 
 	// Delete orphaned draft menu items.
-	$menu_items_to_delete = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts AS p LEFT JOIN $wpdb->postmeta AS m ON p.ID = m.post_id WHERE post_type = 'nav_menu_item' AND post_status = 'draft' AND meta_key = '_menu_item_orphaned' AND meta_value < %d", $delete_timestamp ) );
+	$menu_items_to_delete = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts AS p LEFT JOIN $wpdb->postmeta AS m ON p.ID = m.post_id WHERE post_type = 'nav_menu_item' AND post_status = 'draft' AND meta_key = '_menu_item_orphaned' AND meta_value < %d", $delete_timestamp ) );
 
-	foreach ( (array) $menu_items_to_delete as $menu_item_id )
+	foreach ( (array) $menu_items_to_delete as $menu_item_id ) {
 		wp_delete_post( $menu_item_id, true );
+	}
 }
 
 /**
@@ -1014,19 +1103,37 @@
  * @param string $nav_menu_selected_title Title of the currently-selected menu
  * @return array $messages The menu updated message
  */
-function wp_nav_menu_update_menu_items ( $nav_menu_selected_id, $nav_menu_selected_title ) {
-	$unsorted_menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array( 'orderby' => 'ID', 'output' => ARRAY_A, 'output_key' => 'ID', 'post_status' => 'draft,publish' ) );
-	$messages = array();
-	$menu_items = array();
+function wp_nav_menu_update_menu_items( $nav_menu_selected_id, $nav_menu_selected_title ) {
+	$unsorted_menu_items = wp_get_nav_menu_items(
+		$nav_menu_selected_id,
+		array(
+			'orderby'     => 'ID',
+			'output'      => ARRAY_A,
+			'output_key'  => 'ID',
+			'post_status' => 'draft,publish',
+		)
+	);
+	$messages            = array();
+	$menu_items          = array();
 	// Index menu items by db ID
-	foreach ( $unsorted_menu_items as $_item )
-		$menu_items[$_item->db_id] = $_item;
+	foreach ( $unsorted_menu_items as $_item ) {
+		$menu_items[ $_item->db_id ] = $_item;
+	}
 
 	$post_fields = array(
-		'menu-item-db-id', 'menu-item-object-id', 'menu-item-object',
-		'menu-item-parent-id', 'menu-item-position', 'menu-item-type',
-		'menu-item-title', 'menu-item-url', 'menu-item-description',
-		'menu-item-attr-title', 'menu-item-target', 'menu-item-classes', 'menu-item-xfn'
+		'menu-item-db-id',
+		'menu-item-object-id',
+		'menu-item-object',
+		'menu-item-parent-id',
+		'menu-item-position',
+		'menu-item-type',
+		'menu-item-title',
+		'menu-item-url',
+		'menu-item-description',
+		'menu-item-attr-title',
+		'menu-item-target',
+		'menu-item-classes',
+		'menu-item-xfn',
 	);
 
 	wp_defer_term_counting( true );
@@ -1035,14 +1142,16 @@
 		foreach ( (array) $_POST['menu-item-db-id'] as $_key => $k ) {
 
 			// Menu item title can't be blank
-			if ( ! isset( $_POST['menu-item-title'][ $_key ] ) || '' == $_POST['menu-item-title'][ $_key ] )
+			if ( ! isset( $_POST['menu-item-title'][ $_key ] ) || '' == $_POST['menu-item-title'][ $_key ] ) {
 				continue;
+			}
 
 			$args = array();
-			foreach ( $post_fields as $field )
-				$args[$field] = isset( $_POST[$field][$_key] ) ? $_POST[$field][$_key] : '';
+			foreach ( $post_fields as $field ) {
+				$args[ $field ] = isset( $_POST[ $field ][ $_key ] ) ? $_POST[ $field ][ $_key ] : '';
+			}
 
-			$menu_item_db_id = wp_update_nav_menu_item( $nav_menu_selected_id, ( $_POST['menu-item-db-id'][$_key] != $_key ? 0 : $_key ), $args );
+			$menu_item_db_id = wp_update_nav_menu_item( $nav_menu_selected_id, ( $_POST['menu-item-db-id'][ $_key ] != $_key ? 0 : $_key ), $args );
 
 			if ( is_wp_error( $menu_item_db_id ) ) {
 				$messages[] = '<div id="message" class="error"><p>' . $menu_item_db_id->get_error_message() . '</p></div>';
@@ -1062,16 +1171,19 @@
 	}
 
 	// Store 'auto-add' pages.
-	$auto_add = ! empty( $_POST['auto-add-pages'] );
+	$auto_add        = ! empty( $_POST['auto-add-pages'] );
 	$nav_menu_option = (array) get_option( 'nav_menu_options' );
-	if ( ! isset( $nav_menu_option['auto_add'] ) )
+	if ( ! isset( $nav_menu_option['auto_add'] ) ) {
 		$nav_menu_option['auto_add'] = array();
+	}
 	if ( $auto_add ) {
-		if ( ! in_array( $nav_menu_selected_id, $nav_menu_option['auto_add'] ) )
+		if ( ! in_array( $nav_menu_selected_id, $nav_menu_option['auto_add'] ) ) {
 			$nav_menu_option['auto_add'][] = $nav_menu_selected_id;
+		}
 	} else {
-		if ( false !== ( $key = array_search( $nav_menu_selected_id, $nav_menu_option['auto_add'] ) ) )
-			unset( $nav_menu_option['auto_add'][$key] );
+		if ( false !== ( $key = array_search( $nav_menu_selected_id, $nav_menu_option['auto_add'] ) ) ) {
+			unset( $nav_menu_option['auto_add'][ $key ] );
+		}
 	}
 	// Remove nonexistent/deleted menus
 	$nav_menu_option['auto_add'] = array_intersect( $nav_menu_option['auto_add'], wp_get_nav_menus( array( 'fields' => 'ids' ) ) );
@@ -1084,7 +1196,8 @@
 
 	$messages[] = '<div id="message" class="updated notice is-dismissible"><p>' .
 		/* translators: %s: nav menu title */
-		sprintf( __( '%s has been updated.' ),
+		sprintf(
+			__( '%s has been updated.' ),
 			'<strong>' . $nav_menu_selected_title . '</strong>'
 		) . '</p></div>';