From 7db59a9a8968289580dca610242285c65bd3b44d Mon Sep 17 00:00:00 2001 From: scribu Date: Sat, 30 Oct 2010 22:41:52 +0000 Subject: [PATCH] Fix regression introduced by [16096]. Props duck_. See #14415 git-svn-id: https://develop.svn.wordpress.org/trunk@16105 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/admin-ajax.php | 47 +++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/wp-admin/admin-ajax.php b/wp-admin/admin-ajax.php index 81ce66e8af..a055fb24dc 100644 --- a/wp-admin/admin-ajax.php +++ b/wp-admin/admin-ajax.php @@ -746,31 +746,32 @@ case 'add-menu-item' : // For performance reasons, we omit some object properties from the checklist. // The following is a hacky way to restore them when adding non-custom items. - $menu_items_data = (array) $_POST['menu-item']; - $menu_item_data = array_shift( $menu_items_data ); - if ( - ! empty( $menu_item_data['menu-item-type'] ) && - 'custom' != $menu_item_data['menu-item-type'] && - ! empty( $menu_item_data['menu-item-object-id'] ) - ) { - switch( $menu_item_data['menu-item-type'] ) { - case 'post_type' : - $_object = get_post( $menu_item_data['menu-item-object-id'] ); - break; + $menu_items_data = array(); + foreach ( (array) $_POST['menu-item'] as $menu_item_data ) { + if ( + ! empty( $menu_item_data['menu-item-type'] ) && + 'custom' != $menu_item_data['menu-item-type'] && + ! empty( $menu_item_data['menu-item-object-id'] ) + ) { + switch( $menu_item_data['menu-item-type'] ) { + case 'post_type' : + $_object = get_post( $menu_item_data['menu-item-object-id'] ); + break; - case 'taxonomy' : - $_object = get_term( $menu_item_data['menu-item-object-id'], $menu_item_data['menu-item-object'] ); - break; + case 'taxonomy' : + $_object = get_term( $menu_item_data['menu-item-object-id'], $menu_item_data['menu-item-object'] ); + break; + } + + $_menu_items = array_map( 'wp_setup_nav_menu_item', array( $_object ) ); + $_menu_item = array_shift( $_menu_items ); + + // Restore the missing menu item properties + $menu_item_data['menu-item-description'] = $_menu_item->description; } - - $_menu_items = array_map( 'wp_setup_nav_menu_item', array( $_object ) ); - $_menu_item = array_shift( $_menu_items ); - - // Restore the missing menu item properties - $menu_item_data['menu-item-description'] = $_menu_item->description; - } - - $menu_items_data = array( $menu_item_data ); + + $menu_items_data[] = $menu_item_data; + } $item_ids = wp_save_nav_menu_items( 0, $menu_items_data ); if ( is_wp_error( $item_ids ) )