diff -r 34716fd837a4 -r be944660c56a wp/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php --- a/wp/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php Tue Dec 15 15:52:01 2020 +0100 +++ b/wp/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php Wed Sep 21 18:19:35 2022 +0200 @@ -171,7 +171,7 @@ throw new Exception( "Illegal widget setting ID: $id" ); } - $this->post_id = intval( $matches['id'] ); + $this->post_id = (int) $matches['id']; add_action( 'wp_update_nav_menu_item', array( $this, 'flush_cached_value' ), 10, 2 ); parent::__construct( $manager, $id, $args ); @@ -368,7 +368,7 @@ foreach ( array( 'object_id', 'menu_item_parent', 'nav_menu_term_id' ) as $key ) { if ( ! is_int( $this->value[ $key ] ) ) { - $this->value[ $key ] = intval( $this->value[ $key ] ); + $this->value[ $key ] = (int) $this->value[ $key ]; } } foreach ( array( 'classes', 'xfn' ) as $key ) { @@ -605,6 +605,11 @@ $item->post_title = $item->title; } + // 'classes' should be an array, as in wp_setup_nav_menu_item(). + if ( isset( $item->classes ) && is_scalar( $item->classes ) ) { + $item->classes = explode( ' ', $item->classes ); + } + $item->ID = $this->post_id; $item->db_id = $this->post_id; $post = new WP_Post( (object) $item ); @@ -684,11 +689,11 @@ ); $menu_item_value = array_merge( $default, $menu_item_value ); $menu_item_value = wp_array_slice_assoc( $menu_item_value, array_keys( $default ) ); - $menu_item_value['position'] = intval( $menu_item_value['position'] ); + $menu_item_value['position'] = (int) $menu_item_value['position']; foreach ( array( 'object_id', 'menu_item_parent', 'nav_menu_term_id' ) as $key ) { // Note we need to allow negative-integer IDs for previewed objects not inserted yet. - $menu_item_value[ $key ] = intval( $menu_item_value[ $key ] ); + $menu_item_value[ $key ] = (int) $menu_item_value[ $key ]; } foreach ( array( 'type', 'object', 'target' ) as $key ) { @@ -798,7 +803,7 @@ return; } - if ( intval( $value['nav_menu_term_id'] ) !== $nav_menu_setting->previous_term_id ) { + if ( (int) $value['nav_menu_term_id'] !== $nav_menu_setting->previous_term_id ) { $this->update_status = 'error'; $this->update_error = new WP_Error( 'unexpected_previous_term_id' ); return; @@ -824,7 +829,7 @@ return; } - if ( intval( $value['menu_item_parent'] ) !== $parent_nav_menu_item_setting->previous_post_id ) { + if ( (int) $value['menu_item_parent'] !== $parent_nav_menu_item_setting->previous_post_id ) { $this->update_status = 'error'; $this->update_error = new WP_Error( 'unexpected_previous_post_id' ); return;