- Timestamp:
- 11/30/2017 11:09:33 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/customize/class-wp-customize-nav-menu-setting.php
r41162 r42343 207 207 } 208 208 209 $undefined = new stdClass();209 $undefined = new stdClass(); 210 210 $is_placeholder = ( $this->term_id < 0 ); 211 $is_dirty = ( $undefined !== $this->post_value( $undefined ) );211 $is_dirty = ( $undefined !== $this->post_value( $undefined ) ); 212 212 if ( ! $is_placeholder && ! $is_dirty ) { 213 213 return false; … … 243 243 244 244 $setting_value = $this->value(); 245 $is_delete = ( false === $setting_value );246 $index = -1;245 $is_delete = ( false === $setting_value ); 246 $index = -1; 247 247 248 248 // Find the existing menu item's position in the list. … … 261 261 } else { 262 262 // Handle menus being updated or inserted. 263 $menu_obj = (object) array_merge( array( 264 'term_id' => $this->term_id, 265 'term_taxonomy_id' => $this->term_id, 266 'slug' => sanitize_title( $setting_value['name'] ), 267 'count' => 0, 268 'term_group' => 0, 269 'taxonomy' => self::TAXONOMY, 270 'filter' => 'raw', 271 ), $setting_value ); 263 $menu_obj = (object) array_merge( 264 array( 265 'term_id' => $this->term_id, 266 'term_taxonomy_id' => $this->term_id, 267 'slug' => sanitize_title( $setting_value['name'] ), 268 'count' => 0, 269 'term_group' => 0, 270 'taxonomy' => self::TAXONOMY, 271 'filter' => 'raw', 272 ), $setting_value 273 ); 272 274 273 275 array_splice( $menus, $index, ( -1 === $index ? 0 : 1 ), array( $menu_obj ) ); … … 276 278 // Make sure the menu objects get re-sorted after an update/insert. 277 279 if ( ! $is_delete && ! empty( $args['orderby'] ) ) { 278 $menus = wp_list_sort( $menus, array( 279 $args['orderby'] => 'ASC', 280 ) ); 280 $menus = wp_list_sort( 281 $menus, array( 282 $args['orderby'] => 'ASC', 283 ) 284 ); 281 285 } 282 286 // @todo add support for $args['hide_empty'] === true … … 354 358 } 355 359 356 $menu_obj = (object) array_merge( array( 360 $menu_obj = (object) array_merge( 361 array( 357 362 'term_id' => $this->term_id, 358 363 'term_taxonomy_id' => $this->term_id, … … 362 367 'taxonomy' => self::TAXONOMY, 363 368 'filter' => 'raw', 364 ), $setting_value ); 369 ), $setting_value 370 ); 365 371 366 372 return $menu_obj; … … 380 386 } 381 387 382 $menu = $this->value();388 $menu = $this->value(); 383 389 $nav_menu_options = $this->filter_nav_menu_options_value( 384 390 $nav_menu_options, … … 419 425 'auto_add' => false, 420 426 ); 421 $value = array_merge( $default, $value );422 $value = wp_array_slice_assoc( $value, array_keys( $default ) );427 $value = array_merge( $default, $value ); 428 $value = wp_array_slice_assoc( $value, array_keys( $default ) ); 423 429 424 430 $value['name'] = trim( esc_html( $value['name'] ) ); // This sanitization code is used in wp-admin/nav-menus.php. … … 495 501 } else { 496 502 $this->update_status = 'deleted'; 497 $auto_add = false;503 $auto_add = false; 498 504 } 499 505 } 500 506 } else { 501 507 // Insert or update menu. 502 $menu_data = wp_array_slice_assoc( $value, array( 'description', 'parent' ) );508 $menu_data = wp_array_slice_assoc( $value, array( 'description', 'parent' ) ); 503 509 $menu_data['menu-name'] = $value['name']; 504 510 505 $menu_id = $is_placeholder ? 0 : $this->term_id;506 $r = wp_update_nav_menu_object( $menu_id, wp_slash( $menu_data ) );507 $original_name = $menu_data['menu-name'];511 $menu_id = $is_placeholder ? 0 : $this->term_id; 512 $r = wp_update_nav_menu_object( $menu_id, wp_slash( $menu_data ) ); 513 $original_name = $menu_data['menu-name']; 508 514 $name_conflict_suffix = 1; 509 515 while ( is_wp_error( $r ) && 'menu_exists' === $r->get_error_code() ) { … … 511 517 /* translators: 1: original menu name, 2: duplicate count */ 512 518 $menu_data['menu-name'] = sprintf( __( '%1$s (%2$d)' ), $original_name, $name_conflict_suffix ); 513 $r = wp_update_nav_menu_object( $menu_id, wp_slash( $menu_data ) );519 $r = wp_update_nav_menu_object( $menu_id, wp_slash( $menu_data ) ); 514 520 } 515 521 … … 566 572 567 573 $widget_instance['nav_menu'] = $this->term_id; 568 $updated_widget_instance = $this->manager->widgets->sanitize_widget_js_instance( $widget_instance );574 $updated_widget_instance = $this->manager->widgets->sanitize_widget_js_instance( $widget_instance ); 569 575 $this->manager->set_post_value( $nav_menu_widget_setting->id, $updated_widget_instance ); 570 576 $nav_menu_widget_setting->save(); … … 634 640 $this->_widget_nav_menu_updates 635 641 ); 636 $this->_widget_nav_menu_updates = array();642 $this->_widget_nav_menu_updates = array(); 637 643 638 644 return $data;
Note: See TracChangeset
for help on using the changeset viewer.