From 370401a2a5a7e725f611939e3b7a4bfa19cdfe26 Mon Sep 17 00:00:00 2001 From: Luca Tumedei Date: Fri, 3 May 2024 12:00:44 +0200 Subject: [PATCH] fix(Assets) avoid doing-it-wrong with direct calls --- src/Assets/Assets.php | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/Assets/Assets.php b/src/Assets/Assets.php index 8cf02c1..37bb948 100755 --- a/src/Assets/Assets.php +++ b/src/Assets/Assets.php @@ -697,7 +697,8 @@ public function register_in_wp( $assets = null ) { if ( 'js' === $asset->get_type() ) { // Script is already registered. - if ( wp_script_is( $asset->get_slug(), 'registered' ) ) { + + if ( (bool) wp_scripts()->query( $asset->get_slug(), 'registered' ) ) { continue; } @@ -709,24 +710,28 @@ public function register_in_wp( $assets = null ) { $dependencies = $dependencies( $asset ); } - wp_register_script( $asset->get_slug(), $asset->get_url(), $dependencies, $asset->get_version(), $asset->is_in_footer() ); + $wp_scripts = wp_scripts(); + $registered = $wp_scripts->add( $asset->get_slug(), $asset->get_url(), $dependencies, $asset->get_version() ); + if ( $asset->is_in_footer() ) { + $wp_scripts->add_data( $asset->get_slug(), 'group', 1 ); + } // Register that this asset is actually registered on the WP methods. // @phpstan-ignore-next-line - if ( wp_script_is( $asset->get_slug(), 'registered' ) ) { + if ( (bool) wp_scripts()->query( $asset->get_slug(), 'registered' ) ) { $asset->set_as_registered(); } } else { // Style is already registered. - if ( wp_style_is( $asset->get_slug(), 'registered' ) ) { + if ( (bool) wp_styles()->query( $asset->get_slug(), 'registered' ) ) { continue; } - wp_register_style( $asset->get_slug(), $asset->get_url(), $asset->get_dependencies(), $asset->get_version(), $asset->get_media() ); + wp_styles()->add( $asset->get_slug(), $asset->get_url(), $asset->get_dependencies(), $asset->get_version(), $asset->get_media() ); // Register that this asset is actually registered on the WP methods. // @phpstan-ignore-next-line - if ( wp_style_is( $asset->get_slug(), 'registered' ) ) { + if ( (bool) wp_styles()->query( $asset->get_slug(), 'registered' ) ) { $asset->set_as_registered(); } @@ -811,6 +816,8 @@ public function print_group( $group, $echo = true ) { return $acc; }, [ 'css' => [], 'js' => [] ] ); + $wp_scripts = wp_scripts(); + $wp_styles = wp_styles(); // Make sure each script is registered. foreach ( $to_print as $slug => $asset ) { @@ -818,13 +825,13 @@ public function print_group( $group, $echo = true ) { continue; } 'js' === $asset->get_type() - ? wp_register_script( $slug, $asset->get_file(), $asset->get_dependencies(), $asset->get_version() ) - : wp_register_style( $slug, $asset->get_file(), $asset->get_dependencies(), $asset->get_version() ); + ? $wp_scripts->add( $asset->get_slug(), $asset->get_file(), $asset->get_dependencies(), $asset->get_version() ) + : $wp_styles->add( $slug, $asset->get_file(), $asset->get_dependencies(), $asset->get_version() ); } ob_start(); - wp_scripts()->do_items( $by_type['js'] ); - wp_styles()->do_items( $by_type['css'] ); + $wp_scripts->do_items( $by_type['js'] ); + $wp_styles->do_items( $by_type['css'] ); $tags = ob_get_clean(); if ( $echo ) {