From 87dc042623d4065acc0defa2aae1de004f5069ad Mon Sep 17 00:00:00 2001 From: Weston Ruter Date: Sat, 17 Sep 2016 21:49:49 +0000 Subject: [PATCH] Customize: Ensure nav menu items lacking a label use the title from the original object. Use original title as placeholder for label and in control title. Prevent original title from overriding empty label in initial setting values. Fixes #38015. git-svn-id: https://develop.svn.wordpress.org/trunk@38618 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-admin/js/customize-nav-menus.js | 4 +- .../class-wp-customize-nav-menus.php | 4 ++ ...ass-wp-customize-nav-menu-item-control.php | 4 +- ...ass-wp-customize-nav-menu-item-setting.php | 59 ++++++++++++++---- .../tests/customize/nav-menu-item-setting.php | 61 +++++++++++++++++++ 5 files changed, 116 insertions(+), 16 deletions(-) diff --git a/src/wp-admin/js/customize-nav-menus.js b/src/wp-admin/js/customize-nav-menus.js index e514a0ad9f..6dcdadc3fc 100644 --- a/src/wp-admin/js/customize-nav-menus.js +++ b/src/wp-admin/js/customize-nav-menus.js @@ -1397,14 +1397,14 @@ } var titleEl = control.container.find( '.menu-item-title' ), - titleText = item.title || api.Menus.data.l10n.untitled; + titleText = item.title || item.original_title || api.Menus.data.l10n.untitled; if ( item._invalid ) { titleText = api.Menus.data.l10n.invalidTitleTpl.replace( '%s', titleText ); } // Don't update to an empty title. - if ( item.title ) { + if ( item.title || item.original_title ) { titleEl .text( titleText ) .removeClass( 'no-title' ); diff --git a/src/wp-includes/class-wp-customize-nav-menus.php b/src/wp-includes/class-wp-customize-nav-menus.php index f68dc13761..87dcadb7c1 100644 --- a/src/wp-includes/class-wp-customize-nav-menus.php +++ b/src/wp-includes/class-wp-customize-nav-menus.php @@ -587,6 +587,10 @@ final class WP_Customize_Nav_Menus { $menu_item_setting_id = 'nav_menu_item[' . $item->ID . ']'; $value = (array) $item; + if ( empty( $value['post_title'] ) ) { + $value['title'] = ''; + } + $value['nav_menu_term_id'] = $menu_id; $this->manager->add_setting( new WP_Customize_Nav_Menu_Item_Setting( $this->manager, $menu_item_setting_id, array( 'value' => $value, diff --git a/src/wp-includes/customize/class-wp-customize-nav-menu-item-control.php b/src/wp-includes/customize/class-wp-customize-nav-menu-item-control.php index 95e7b54df0..ee3311b463 100644 --- a/src/wp-includes/customize/class-wp-customize-nav-menu-item-control.php +++ b/src/wp-includes/customize/class-wp-customize-nav-menu-item-control.php @@ -69,7 +69,7 @@ class WP_Customize_Nav_Menu_Item_Control extends WP_Customize_Control {