diff --git src/wp-includes/class-wp-customize-nav-menus.php src/wp-includes/class-wp-customize-nav-menus.php
index fdf45e5229..70f462586d 100644
|
|
final class WP_Customize_Nav_Menus { |
1265 | 1265 | * |
1266 | 1266 | * @param string $nav_menu_content The HTML content for the navigation menu. |
1267 | 1267 | * @param object $args An object containing wp_nav_menu() arguments. |
1268 | | * @return null |
| 1268 | * @return string Updated HTML content. |
1269 | 1269 | */ |
1270 | 1270 | public function filter_wp_nav_menu( $nav_menu_content, $args ) { |
1271 | 1271 | if ( isset( $args->customize_preview_nav_menus_args['can_partial_refresh'] ) && $args->customize_preview_nav_menus_args['can_partial_refresh'] ) { |
1272 | 1272 | $attributes = sprintf( ' data-customize-partial-id="%s"', esc_attr( 'nav_menu_instance[' . $args->customize_preview_nav_menus_args['args_hmac'] . ']' ) ); |
1273 | 1273 | $attributes .= ' data-customize-partial-type="nav_menu_instance"'; |
1274 | 1274 | $attributes .= sprintf( ' data-customize-partial-placement-context="%s"', esc_attr( wp_json_encode( $args->customize_preview_nav_menus_args ) ) ); |
1275 | | $nav_menu_content = preg_replace( '#^(<\w+)#', '$1 ' . $attributes, $nav_menu_content, 1 ); |
| 1275 | $nav_menu_content = preg_replace( '#^(<\w+)#', '$1 ' . preg_quote( $attributes, '#' ), $nav_menu_content, 1 ); |
1276 | 1276 | } |
| 1277 | |
1277 | 1278 | return $nav_menu_content; |
1278 | 1279 | } |
1279 | 1280 | |