functions.wp-scripts.php contains a lot of duplicated code. Make 2 new functions: wp_scripts() and wp_scripts_maybe_doing_it_wrong( $function ), to encapsulate the repeated logic.

Props GaryJ, scribu, wonderboymusic.
Fixes #20513.

Built from https://develop.svn.wordpress.org/trunk@31192


git-svn-id: http://core.svn.wordpress.org/trunk@31173 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Scott Taylor 2015-01-16 02:07:22 +00:00
parent 378d66f038
commit 74a8d68bbf
2 changed files with 60 additions and 58 deletions

View File

@ -8,6 +8,43 @@
* @subpackage BackPress
*/
/**
* Initialize $wp_scripts if it has not been set.
*
* @global WP_Scripts $wp_scripts
*
* @since 4.2.0
*
* @return WP_Scripts
*/
function wp_scripts() {
global $wp_scripts;
if ( ! ( $wp_scripts instanceof WP_Scripts ) ) {
$wp_scripts = new WP_Scripts();
}
return $wp_scripts;
}
/**
* Helper function to output a _doing_it_wrong message when applicable
*
* @since 4.2.0
*
* @param string $function
*/
function wp_scripts_maybe_doing_it_wrong( $function ) {
if ( did_action( 'init' ) ) {
return;
}
_doing_it_wrong( $function, sprintf(
__( 'Scripts and styles should not be registered or enqueued until the %1$s, %2$s, or %3$s hooks.' ),
'<code>wp_enqueue_scripts</code>',
'<code>admin_enqueue_scripts</code>',
'<code>login_enqueue_scripts</code>'
), '3.3' );
}
/**
* Print scripts in document head that are in the $handles queue.
*
@ -31,22 +68,16 @@ function wp_print_scripts( $handles = false ) {
* @since 2.1.0
*/
do_action( 'wp_print_scripts' );
if ( '' === $handles ) // for wp_head
if ( '' === $handles ) { // for wp_head
$handles = false;
global $wp_scripts;
if ( ! ( $wp_scripts instanceof 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.' ),
'<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>login_enqueue_scripts</code>' ), '3.3' );
if ( !$handles )
return array(); // No need to instantiate if nothing is there.
else
$wp_scripts = new WP_Scripts();
}
return $wp_scripts->do_items( $handles );
wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
if ( ! $handles ) {
return array(); // No need to instantiate if nothing is there.
}
return wp_scripts()->do_items( $handles );
}
/**
@ -71,17 +102,13 @@ function wp_print_scripts( $handles = false ) {
* Default 'false'. Accepts 'false' or 'true'.
*/
function wp_register_script( $handle, $src, $deps = array(), $ver = false, $in_footer = false ) {
global $wp_scripts;
if ( ! ( $wp_scripts instanceof 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.' ),
'<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>login_enqueue_scripts</code>' ), '3.3' );
$wp_scripts = new WP_Scripts();
}
$wp_scripts = wp_scripts();
wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
$wp_scripts->add( $handle, $src, $deps, $ver );
if ( $in_footer )
if ( $in_footer ) {
$wp_scripts->add_data( $handle, 'group', 1 );
}
}
/**
@ -116,14 +143,11 @@ function wp_register_script( $handle, $src, $deps = array(), $ver = false, $in_f
function wp_localize_script( $handle, $object_name, $l10n ) {
global $wp_scripts;
if ( ! ( $wp_scripts instanceof 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.' ),
'<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>login_enqueue_scripts</code>' ), '3.3' );
wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
return false;
}
return $wp_scripts->localize( $handle, $object_name, $l10n );
return wp_scripts()->localize( $handle, $object_name, $l10n );
}
/**
@ -140,13 +164,7 @@ function wp_localize_script( $handle, $object_name, $l10n ) {
* @param string $handle Name of the script to be removed.
*/
function wp_deregister_script( $handle ) {
global $wp_scripts;
if ( ! ( $wp_scripts instanceof 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.' ),
'<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>login_enqueue_scripts</code>' ), '3.3' );
$wp_scripts = new WP_Scripts();
}
wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
/**
* Do not allow accidental or negligent de-registering of critical scripts in the admin.
@ -173,7 +191,7 @@ function wp_deregister_script( $handle ) {
}
}
$wp_scripts->remove( $handle );
wp_scripts()->remove( $handle );
}
/**
@ -196,13 +214,9 @@ function wp_deregister_script( $handle ) {
* Default 'false'. Accepts 'false' or 'true'.
*/
function wp_enqueue_script( $handle, $src = false, $deps = array(), $ver = false, $in_footer = false ) {
global $wp_scripts;
if ( ! ( $wp_scripts instanceof 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.' ),
'<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>login_enqueue_scripts</code>' ), '3.3' );
$wp_scripts = new WP_Scripts();
}
$wp_scripts = wp_scripts();
wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
$_handle = explode( '?', $handle );
@ -228,15 +242,9 @@ function wp_enqueue_script( $handle, $src = false, $deps = array(), $ver = false
* @param string $handle Name of the script to be removed.
*/
function wp_dequeue_script( $handle ) {
global $wp_scripts;
if ( ! ( $wp_scripts instanceof 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.' ),
'<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>login_enqueue_scripts</code>' ), '3.3' );
$wp_scripts = new WP_Scripts();
}
wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
$wp_scripts->dequeue( $handle );
wp_scripts()->dequeue( $handle );
}
/**
@ -253,13 +261,7 @@ function wp_dequeue_script( $handle ) {
* @return bool Whether the script script is queued.
*/
function wp_script_is( $handle, $list = 'enqueued' ) {
global $wp_scripts;
if ( ! ( $wp_scripts instanceof 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.' ),
'<code>wp_enqueue_scripts</code>', '<code>admin_enqueue_scripts</code>', '<code>login_enqueue_scripts</code>' ), '3.3' );
$wp_scripts = new WP_Scripts();
}
wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
return (bool) $wp_scripts->query( $handle, $list );
return (bool) wp_scripts()->query( $handle, $list );
}

View File

@ -4,7 +4,7 @@
*
* @global string $wp_version
*/
$wp_version = '4.2-alpha-31191';
$wp_version = '4.2-alpha-31192';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.