From d75c52e120ba4ac21d2be338caa05afde494d5ea Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Fri, 10 May 2013 18:03:09 +0000 Subject: [PATCH] Prevent menu items with '0' label from being removed on menu saving. props MikeHansenMe, kovshenin. fixes #23051. git-svn-id: https://develop.svn.wordpress.org/trunk@24235 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/includes/nav-menu.php | 4 ++-- wp-includes/nav-menu.php | 9 ++++----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/wp-admin/includes/nav-menu.php b/wp-admin/includes/nav-menu.php index 41324f0a5b..a0aa77a1a1 100644 --- a/wp-admin/includes/nav-menu.php +++ b/wp-admin/includes/nav-menu.php @@ -79,7 +79,7 @@ class Walker_Nav_Menu_Edit extends Walker_Nav_Menu { $title = sprintf( __('%s (Pending)'), $item->title ); } - $title = empty( $item->label ) ? $title : $item->label; + $title = ( ! isset( $item->label ) || '' == $item->label ) ? $title : $item->label; $submenu_text = ''; if ( 0 == $depth ) @@ -1235,7 +1235,7 @@ function wp_nav_menu_update_menu_items ( $nav_menu_selected_id, $nav_menu_select foreach( (array) $_POST['menu-item-db-id'] as $_key => $k ) { // Menu item title can't be blank - if ( empty( $_POST['menu-item-title'][$_key] ) ) + if ( ! isset( $_POST['menu-item-title'][ $_key ] ) || '' == $_POST['menu-item-title'][ $_key ] ) continue; $args = array(); diff --git a/wp-includes/nav-menu.php b/wp-includes/nav-menu.php index 5157f07e7b..3707404c9d 100644 --- a/wp-includes/nav-menu.php +++ b/wp-includes/nav-menu.php @@ -336,13 +336,12 @@ function wp_update_nav_menu_item( $menu_id = 0, $menu_item_db_id = 0, $menu_item $original_title = $original_object->post_title; } - if ( empty( $args['menu-item-title'] ) || $args['menu-item-title'] == $original_title ) { + if ( $args['menu-item-title'] == $original_title ) $args['menu-item-title'] = ''; - // hack to get wp to create a post object when too many properties are empty - if ( empty( $args['menu-item-description'] ) ) - $args['menu-item-description'] = ' '; - } + // hack to get wp to create a post object when too many properties are empty + if ( '' == $args['menu-item-title'] && '' == $args['menu-item-description'] ) + $args['menu-item-description'] = ' '; } // Populate the menu item object