diff --git src/wp-admin/js/customize-nav-menus.js src/wp-admin/js/customize-nav-menus.js
index f5296b6..e7d5352 100644
|
|
|
|
| 1246 | 1246 | return; |
| 1247 | 1247 | } |
| 1248 | 1248 | |
| 1249 | | var titleEl = control.container.find( '.menu-item-title' ); |
| | 1249 | var titleEl = control.container.find( '.menu-item-title' ), |
| | 1250 | titleText = item.title || api.Menus.data.l10n.untitled; |
| | 1251 | |
| | 1252 | if ( item._invalid ) { |
| | 1253 | titleText = api.Menus.data.l10n.invalidTitleTpl.replace( '%s', titleText ); |
| | 1254 | } |
| 1250 | 1255 | |
| 1251 | 1256 | // Don't update to an empty title. |
| 1252 | 1257 | if ( item.title ) { |
| 1253 | 1258 | titleEl |
| 1254 | | .text( item.title ) |
| | 1259 | .text( titleText ) |
| 1255 | 1260 | .removeClass( 'no-title' ); |
| 1256 | 1261 | } else { |
| 1257 | 1262 | titleEl |
| 1258 | | .text( api.Menus.data.l10n.untitled ) |
| | 1263 | .text( titleText ) |
| 1259 | 1264 | .addClass( 'no-title' ); |
| 1260 | 1265 | } |
| 1261 | 1266 | } ); |
| … |
… |
|
| 1299 | 1304 | 'menu-item-edit-inactive' |
| 1300 | 1305 | ]; |
| 1301 | 1306 | |
| 1302 | | if ( settingValue.invalid ) { |
| 1303 | | containerClasses.push( 'invalid' ); |
| 1304 | | control.params.title = api.Menus.data.invalidTitleTpl.replace( '%s', control.params.title ); |
| | 1307 | if ( settingValue._invalid ) { |
| | 1308 | containerClasses.push( 'menu-item-invalid' ); |
| | 1309 | control.params.title = api.Menus.data.l10n.invalidTitleTpl.replace( '%s', control.params.title ); |
| 1305 | 1310 | } else if ( 'draft' === settingValue.status ) { |
| 1306 | 1311 | containerClasses.push( 'pending' ); |
| 1307 | 1312 | control.params.title = api.Menus.data.pendingTitleTpl.replace( '%s', control.params.title ); |
diff --git src/wp-includes/class-wp-customize-nav-menus.php src/wp-includes/class-wp-customize-nav-menus.php
index 2b667ce..0866be4 100644
|
|
|
final class WP_Customize_Nav_Menus { |
| 537 | 537 | |
| 538 | 538 | $value = (array) $item; |
| 539 | 539 | $value['nav_menu_term_id'] = $menu_id; |
| | 540 | |
| | 541 | if ( ! isset( $value['_invalid'] ) ) { |
| | 542 | $value['_invalid'] = false; |
| | 543 | } |
| | 544 | |
| 540 | 545 | $this->manager->add_setting( new WP_Customize_Nav_Menu_Item_Setting( $this->manager, $menu_item_setting_id, array( |
| 541 | 546 | 'value' => $value, |
| 542 | 547 | ) ) ); |
diff --git src/wp-includes/class-wp-customize-setting.php src/wp-includes/class-wp-customize-setting.php
index 98f37f9..928bf30 100644
|
|
|
class WP_Customize_Nav_Menu_Item_Setting extends WP_Customize_Setting { |
| 690 | 690 | 'status' => 'publish', |
| 691 | 691 | 'original_title' => '', |
| 692 | 692 | 'nav_menu_term_id' => 0, // This will be supplied as the $menu_id arg for wp_update_nav_menu_item(). |
| 693 | | // @todo also expose invalid? |
| | 693 | '_invalid' => false, |
| 694 | 694 | ); |
| 695 | 695 | |
| 696 | 696 | /** |
| … |
… |
class WP_Customize_Nav_Menu_Item_Setting extends WP_Customize_Setting { |
| 1039 | 1039 | $should_remove = ( |
| 1040 | 1040 | false === $this_item |
| 1041 | 1041 | || |
| | 1042 | true === $this_item['_invalid'] |
| | 1043 | || |
| 1042 | 1044 | ( |
| 1043 | 1045 | $this->original_nav_menu_term_id === $menu->term_id |
| 1044 | 1046 | && |
| … |
… |
class WP_Customize_Nav_Menu_Item_Setting extends WP_Customize_Setting { |
| 1210 | 1212 | 'status' => 'publish', |
| 1211 | 1213 | 'original_title' => '', |
| 1212 | 1214 | 'nav_menu_term_id' => 0, |
| | 1215 | '_invalid' => false, |
| 1213 | 1216 | ); |
| 1214 | 1217 | $menu_item_value = array_merge( $default, $menu_item_value ); |
| 1215 | 1218 | $menu_item_value = wp_array_slice_assoc( $menu_item_value, array_keys( $default ) ); |