From 03cb3e30f20b1cdff0c4b0fb3bde2bcd3c4a1c30 Mon Sep 17 00:00:00 2001 From: Pascal Birchler Date: Wed, 31 Jan 2024 18:14:30 +0000 Subject: [PATCH] Script Loader: Use a global variable in `wp_script_modules()`. This brings the function more in line with its related `wp_scripts()` and `wp_styles()` functions and makes it easier to reset the class instance in tests. Props westonruter, luisherranz. See #56313. git-svn-id: https://develop.svn.wordpress.org/trunk@57503 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/script-modules.php | 13 ++++++++----- src/wp-settings.php | 2 ++ 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/wp-includes/script-modules.php b/src/wp-includes/script-modules.php index 205494f699..2aff768bb3 100644 --- a/src/wp-includes/script-modules.php +++ b/src/wp-includes/script-modules.php @@ -14,17 +14,20 @@ * This function provides access to the WP_Script_Modules instance, creating one * if it doesn't exist yet. * + * @global WP_Script_Modules $wp_script_modules + * * @since 6.5.0 * * @return WP_Script_Modules The main WP_Script_Modules instance. */ function wp_script_modules(): WP_Script_Modules { - static $instance = null; - if ( is_null( $instance ) ) { - $instance = new WP_Script_Modules(); - $instance->add_hooks(); + global $wp_script_modules; + + if ( ! ( $wp_script_modules instanceof WP_Script_Modules ) ) { + $wp_script_modules = new WP_Script_Modules(); } - return $instance; + + return $wp_script_modules; } /** diff --git a/src/wp-settings.php b/src/wp-settings.php index 624b1d804a..87769333c5 100644 --- a/src/wp-settings.php +++ b/src/wp-settings.php @@ -378,6 +378,8 @@ require ABSPATH . WPINC . '/class-wp-script-modules.php'; require ABSPATH . WPINC . '/script-modules.php'; require ABSPATH . WPINC . '/interactivity-api.php'; +wp_script_modules()->add_hooks(); + $GLOBALS['wp_embed'] = new WP_Embed(); /**