From fd6357ae7bde138ecfd7b24969ed19d013d9b6d3 Mon Sep 17 00:00:00 2001 From: ramonopoly Date: Mon, 4 Nov 2024 02:34:16 +0000 Subject: [PATCH] Theme JSON Resolver: remove theme json merge in resolve_theme_file_uris MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit affects `WP_Theme_JSON_Resolver::resolve_theme_file_uris()`. When setting resolved URIs in an incoming theme json object, this commit removes the unnecessary call to `WP_Theme_JSON->merge()`. Why? `WP_Theme_JSON_Resolver::resolve_theme_file_uris()` only needs to set values for paths in the raw theme json object. It can then return a new theme object based on the updated JSON source. There's no need for a full and possibly expensive merge. Follow-up to [61588]. Props ramonopoly, aaronrobertshaw, andrewserong. Fixes #62329. Built from https://develop.svn.wordpress.org/trunk@59338 git-svn-id: http://core.svn.wordpress.org/trunk@58724 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/class-wp-theme-json-resolver.php | 8 ++------ wp-includes/version.php | 2 +- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/wp-includes/class-wp-theme-json-resolver.php b/wp-includes/class-wp-theme-json-resolver.php index d63a84353c..3246992a42 100644 --- a/wp-includes/class-wp-theme-json-resolver.php +++ b/wp-includes/class-wp-theme-json-resolver.php @@ -933,18 +933,14 @@ class WP_Theme_JSON_Resolver { return $theme_json; } - $resolved_theme_json_data = array( - 'version' => WP_Theme_JSON::LATEST_SCHEMA, - ); + $resolved_theme_json_data = $theme_json->get_raw_data(); foreach ( $resolved_urls as $resolved_url ) { $path = explode( '.', $resolved_url['target'] ); _wp_array_set( $resolved_theme_json_data, $path, $resolved_url['href'] ); } - $theme_json->merge( new WP_Theme_JSON( $resolved_theme_json_data ) ); - - return $theme_json; + return new WP_Theme_JSON( $resolved_theme_json_data ); } /** diff --git a/wp-includes/version.php b/wp-includes/version.php index aa3238388b..292679e998 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.8-alpha-59337'; +$wp_version = '6.8-alpha-59338'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.