diff --git a/wp-includes/functions.wp-scripts.php b/wp-includes/functions.wp-scripts.php
index fec247fe07..650042f45b 100644
--- a/wp-includes/functions.wp-scripts.php
+++ b/wp-includes/functions.wp-scripts.php
@@ -24,7 +24,11 @@ function wp_print_scripts( $handles = false ) {
$handles = false;
global $wp_scripts;
- if ( !is_a($wp_scripts, 'WP_Scripts') ) {
+ if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) {
+ if ( ! did_action( 'init' ) )
+ _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
+ 'wp_enqueue_scripts
', 'admin_enqueue_scripts
', 'init
' ), '3.3' );
+
if ( !$handles )
return array(); // No need to instantiate if nothing is there.
else
@@ -47,8 +51,12 @@ function wp_print_scripts( $handles = false ) {
*/
function wp_register_script( $handle, $src, $deps = array(), $ver = false, $in_footer = false ) {
global $wp_scripts;
-
- wp_scripts_init();
+ if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) {
+ if ( ! did_action( 'init' ) )
+ _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
+ 'wp_enqueue_scripts
', 'admin_enqueue_scripts
', 'init
' ), '3.3' );
+ $wp_scripts = new WP_Scripts();
+ }
$wp_scripts->add( $handle, $src, $deps, $ver );
if ( $in_footer )
@@ -75,8 +83,12 @@ function wp_register_script( $handle, $src, $deps = array(), $ver = false, $in_f
*/
function wp_localize_script( $handle, $name, $data ) {
global $wp_scripts;
-
- wp_scripts_init();
+ if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) {
+ if ( ! did_action( 'init' ) )
+ _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
+ 'wp_enqueue_scripts
', 'admin_enqueue_scripts
', 'init
' ), '3.3' );
+ return false;
+ }
return $wp_scripts->add_script_data( $handle, $name, $data );
}
@@ -89,8 +101,12 @@ function wp_localize_script( $handle, $name, $data ) {
*/
function wp_deregister_script( $handle ) {
global $wp_scripts;
-
- wp_scripts_init();
+ if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) {
+ if ( ! did_action( 'init' ) )
+ _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
+ 'wp_enqueue_scripts
', 'admin_enqueue_scripts
', 'init
' ), '3.3' );
+ $wp_scripts = new WP_Scripts();
+ }
$wp_scripts->remove( $handle );
}
@@ -105,8 +121,12 @@ function wp_deregister_script( $handle ) {
*/
function wp_enqueue_script( $handle, $src = false, $deps = array(), $ver = false, $in_footer = false ) {
global $wp_scripts;
-
- wp_scripts_init();
+ if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) {
+ if ( ! did_action( 'init' ) )
+ _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
+ 'wp_enqueue_scripts
', 'admin_enqueue_scripts
', 'init
' ), '3.3' );
+ $wp_scripts = new WP_Scripts();
+ }
if ( $src ) {
$_handle = explode('?', $handle);
@@ -125,8 +145,12 @@ function wp_enqueue_script( $handle, $src = false, $deps = array(), $ver = false
*/
function wp_dequeue_script( $handle ) {
global $wp_scripts;
-
- wp_scripts_init();
+ if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) {
+ if ( ! did_action( 'init' ) )
+ _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
+ 'wp_enqueue_scripts
', 'admin_enqueue_scripts
', 'init
' ), '3.3' );
+ $wp_scripts = new WP_Scripts();
+ }
$wp_scripts->dequeue( $handle );
}
@@ -145,8 +169,12 @@ function wp_dequeue_script( $handle ) {
*/
function wp_script_is( $handle, $list = 'queue' ) {
global $wp_scripts;
-
- wp_scripts_init();
+ if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) {
+ if ( ! did_action( 'init' ) )
+ _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
+ 'wp_enqueue_scripts
', 'admin_enqueue_scripts
', 'init
' ), '3.3' );
+ $wp_scripts = new WP_Scripts();
+ }
$query = $wp_scripts->query( $handle, $list );
@@ -155,22 +183,3 @@ function wp_script_is( $handle, $list = 'queue' ) {
return $query;
}
-
-/**
- * Initializes $wp_scripts global (if it hasn't already been initialized by a faulty plugin or theme).
- *
- * @since 3.3
- */
-function wp_scripts_init() {
- global $wp_scripts;
- static $done = false;
-
- if ( !$done && !is_a($wp_scripts, 'WP_Scripts') ) {
- if ( !did_action('after_setup_theme') ) // last action before init
- _doing_it_wrong( __FUNCTION__, __( '$wp_scripts should not be accessed before the "init" hook.' ), '3.3' );
-
- $wp_scripts = new WP_Scripts();
- $done = true;
- }
-}
-
diff --git a/wp-includes/functions.wp-styles.php b/wp-includes/functions.wp-styles.php
index e345e3f116..50c7367734 100644
--- a/wp-includes/functions.wp-styles.php
+++ b/wp-includes/functions.wp-styles.php
@@ -23,7 +23,11 @@ function wp_print_styles( $handles = false ) {
$handles = false;
global $wp_styles;
- if ( !is_a($wp_styles, 'WP_Styles') ) {
+ if ( ! is_a( $wp_styles, 'WP_Styles' ) ) {
+ if ( ! did_action( 'init' ) )
+ _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
+ 'wp_enqueue_scripts
', 'admin_enqueue_scripts
', 'init
' ), '3.3' );
+
if ( !$handles )
return array(); // No need to instantiate if nothing is there.
else
@@ -46,8 +50,12 @@ function wp_print_styles( $handles = false ) {
*/
function wp_add_inline_style( $handle, $data ) {
global $wp_styles;
- if ( !is_a($wp_styles, 'WP_Styles') )
- return false;
+ if ( ! is_a( $wp_styles, 'WP_Styles' ) ) {
+ if ( ! did_action( 'init' ) )
+ _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
+ 'wp_enqueue_scripts
', 'admin_enqueue_scripts
', 'init
' ), '3.3' );
+ $wp_styles = new WP_Styles();
+ }
return $wp_styles->add_inline_style( $handle, $data );
}
@@ -70,8 +78,12 @@ function wp_add_inline_style( $handle, $data ) {
*/
function wp_register_style( $handle, $src, $deps = array(), $ver = false, $media = 'all' ) {
global $wp_styles;
-
- wp_styles_init();
+ if ( ! is_a( $wp_styles, 'WP_Styles' ) ) {
+ if ( ! did_action( 'init' ) )
+ _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
+ 'wp_enqueue_scripts
', 'admin_enqueue_scripts
', 'init
' ), '3.3' );
+ $wp_styles = new WP_Styles();
+ }
$wp_styles->add( $handle, $src, $deps, $ver, $media );
}
@@ -87,8 +99,12 @@ function wp_register_style( $handle, $src, $deps = array(), $ver = false, $media
*/
function wp_deregister_style( $handle ) {
global $wp_styles;
-
- wp_styles_init();
+ if ( ! is_a( $wp_styles, 'WP_Styles' ) ) {
+ if ( ! did_action( 'init' ) )
+ _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
+ 'wp_enqueue_scripts
', 'admin_enqueue_scripts
', 'init
' ), '3.3' );
+ $wp_styles = new WP_Styles();
+ }
$wp_styles->remove( $handle );
}
@@ -114,8 +130,12 @@ function wp_deregister_style( $handle ) {
*/
function wp_enqueue_style( $handle, $src = false, $deps = array(), $ver = false, $media = 'all' ) {
global $wp_styles;
-
- wp_styles_init();
+ if ( ! is_a( $wp_styles, 'WP_Styles' ) ) {
+ if ( ! did_action( 'init' ) )
+ _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
+ 'wp_enqueue_scripts
', 'admin_enqueue_scripts
', 'init
' ), '3.3' );
+ $wp_styles = new WP_Styles();
+ }
if ( $src ) {
$_handle = explode('?', $handle);
@@ -132,8 +152,12 @@ function wp_enqueue_style( $handle, $src = false, $deps = array(), $ver = false,
*/
function wp_dequeue_style( $handle ) {
global $wp_styles;
-
- wp_styles_init();
+ if ( ! is_a( $wp_styles, 'WP_Styles' ) ) {
+ if ( ! did_action( 'init' ) )
+ _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
+ 'wp_enqueue_scripts
', 'admin_enqueue_scripts
', 'init
' ), '3.3' );
+ $wp_styles = new WP_Styles();
+ }
$wp_styles->dequeue( $handle );
}
@@ -152,8 +176,12 @@ function wp_dequeue_style( $handle ) {
*/
function wp_style_is( $handle, $list = 'queue' ) {
global $wp_styles;
-
- wp_styles_init();
+ if ( ! is_a( $wp_styles, 'WP_Styles' ) ) {
+ if ( ! did_action( 'init' ) )
+ _doing_it_wrong( __FUNCTION__, sprintf( __( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
+ 'wp_enqueue_scripts
', 'admin_enqueue_scripts
', 'init
' ), '3.3' );
+ $wp_styles = new WP_Styles();
+ }
$query = $wp_styles->query( $handle, $list );
@@ -162,22 +190,3 @@ function wp_style_is( $handle, $list = 'queue' ) {
return $query;
}
-
-/**
- * Initializes $wp_styles global (if it hasn't already been initialized by a faulty plugin or theme).
- *
- * @since 3.3
- */
-function wp_styles_init() {
- global $wp_styles;
- static $done = false;
-
- if ( !$done && !is_a($wp_styles, 'WP_Styles') ) {
- if ( !did_action('after_setup_theme') )
- _doing_it_wrong( __FUNCTION__, __( '$wp_styles should not be accessed before the "init" hook.' ), '3.3' );
-
- $wp_styles = new WP_Styles();
- $done = true;
- }
-}
-