diff -r 3d4e9c994f10 -r a86126ab1dd4 wp/wp-includes/functions.wp-scripts.php
--- a/wp/wp-includes/functions.wp-scripts.php Tue Oct 22 16:11:46 2019 +0200
+++ b/wp/wp-includes/functions.wp-scripts.php Tue Dec 15 13:49:49 2020 +0100
@@ -19,9 +19,11 @@
*/
function wp_scripts() {
global $wp_scripts;
+
if ( ! ( $wp_scripts instanceof WP_Scripts ) ) {
$wp_scripts = new WP_Scripts();
}
+
return $wp_scripts;
}
@@ -30,23 +32,38 @@
*
* @ignore
* @since 4.2.0
+ * @since 5.5.0 Added the `$handle` parameter.
*
* @param string $function Function name.
+ * @param string $handle Optional. Name of the script or stylesheet that was
+ * registered or enqueued too early. Default empty.
*/
-function _wp_scripts_maybe_doing_it_wrong( $function ) {
- if ( did_action( 'init' ) || did_action( 'admin_enqueue_scripts' ) || did_action( 'wp_enqueue_scripts' ) || did_action( 'login_enqueue_scripts' ) ) {
+function _wp_scripts_maybe_doing_it_wrong( $function, $handle = '' ) {
+ if ( did_action( 'init' ) || did_action( 'wp_enqueue_scripts' )
+ || did_action( 'admin_enqueue_scripts' ) || did_action( 'login_enqueue_scripts' )
+ ) {
return;
}
+ $message = sprintf(
+ /* translators: 1: wp_enqueue_scripts, 2: admin_enqueue_scripts, 3: login_enqueue_scripts */
+ __( '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
',
+ 'login_enqueue_scripts
'
+ );
+
+ if ( $handle ) {
+ $message .= ' ' . sprintf(
+ /* translators: %s: Name of the script or stylesheet. */
+ __( 'This notice was triggered by the %s handle.' ),
+ '' . $handle . '
'
+ );
+ }
+
_doing_it_wrong(
$function,
- sprintf(
- /* translators: 1: wp_enqueue_scripts, 2: admin_enqueue_scripts, 3: login_enqueue_scripts */
- __( '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
',
- 'login_enqueue_scripts
'
- ),
+ $message,
'3.3.0'
);
}
@@ -59,28 +76,30 @@
* Makes use of already-instantiated $wp_scripts global if present. Use provided {@see 'wp_print_scripts'}
* hook to register/enqueue new scripts.
*
- * @see WP_Scripts::do_items()
+ * @see WP_Scripts::do_item()
* @global WP_Scripts $wp_scripts The WP_Scripts object for printing scripts.
*
* @since 2.1.0
*
* @param string|bool|array $handles Optional. Scripts to be printed. Default 'false'.
- * @return array On success, a processed array of WP_Dependencies items; otherwise, an empty array.
+ * @return string[] On success, an array of handles of processed WP_Dependencies items; otherwise, an empty array.
*/
function wp_print_scripts( $handles = false ) {
+ global $wp_scripts;
+
/**
* Fires before scripts in the $handles queue are printed.
*
* @since 2.1.0
*/
do_action( 'wp_print_scripts' );
- if ( '' === $handles ) { // for wp_head
+
+ if ( '' === $handles ) { // For 'wp_head'.
$handles = false;
}
_wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
- global $wp_scripts;
if ( ! ( $wp_scripts instanceof WP_Scripts ) ) {
if ( ! $handles ) {
return array(); // No need to instantiate if nothing is there.
@@ -109,7 +128,7 @@
* @return bool True on success, false on failure.
*/
function wp_add_inline_script( $handle, $data, $position = 'after' ) {
- _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
+ _wp_scripts_maybe_doing_it_wrong( __FUNCTION__, $handle );
if ( false !== stripos( $data, '' ) ) {
_doing_it_wrong(
@@ -142,7 +161,7 @@
* @param string $handle Name of the script. Should be unique.
* @param string|bool $src Full URL of the script, or path of the script relative to the WordPress root directory.
* If source is set to false, script is an alias of other scripts it depends on.
- * @param array $deps Optional. An array of registered script handles this script depends on. Default empty array.
+ * @param string[] $deps Optional. An array of registered script handles this script depends on. Default empty array.
* @param string|bool|null $ver Optional. String specifying script version number, if it has one, which is added to the URL
* as a query string for cache busting purposes. If version is set to false, a version
* number is automatically added equal to current installed WordPress version.
@@ -152,8 +171,9 @@
* @return bool Whether the script has been registered. True on success, false on failure.
*/
function wp_register_script( $handle, $src, $deps = array(), $ver = false, $in_footer = false ) {
+ _wp_scripts_maybe_doing_it_wrong( __FUNCTION__, $handle );
+
$wp_scripts = wp_scripts();
- _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
$registered = $wp_scripts->add( $handle, $src, $deps, $ver );
if ( $in_footer ) {
@@ -176,7 +196,7 @@
* ...
* }
*
- * @see WP_Dependencies::localize()
+ * @see WP_Scripts::localize()
* @link https://core.trac.wordpress.org/ticket/11520
* @global WP_Scripts $wp_scripts The WP_Scripts object for printing scripts.
*
@@ -187,13 +207,14 @@
* @param string $handle Script handle the data will be attached to.
* @param string $object_name Name for the JavaScript object. Passed directly, so it should be qualified JS variable.
* Example: '/[a-zA-Z0-9_]+/'.
- * @param array $l10n The data itself. The data can be either a single or multi-dimensional array.
+ * @param array $l10n The data itself. The data can be either a single or multi-dimensional array.
* @return bool True if the script was successfully localized, false otherwise.
*/
function wp_localize_script( $handle, $object_name, $l10n ) {
global $wp_scripts;
+
if ( ! ( $wp_scripts instanceof WP_Scripts ) ) {
- _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
+ _wp_scripts_maybe_doing_it_wrong( __FUNCTION__, $handle );
return false;
}
@@ -218,8 +239,9 @@
*/
function wp_set_script_translations( $handle, $domain = 'default', $path = null ) {
global $wp_scripts;
+
if ( ! ( $wp_scripts instanceof WP_Scripts ) ) {
- _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
+ _wp_scripts_maybe_doing_it_wrong( __FUNCTION__, $handle );
return false;
}
@@ -239,7 +261,7 @@
* @param string $handle Name of the script to be removed.
*/
function wp_deregister_script( $handle ) {
- _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
+ _wp_scripts_maybe_doing_it_wrong( __FUNCTION__, $handle );
/**
* Do not allow accidental or negligent de-registering of critical scripts in the admin.
@@ -249,7 +271,7 @@
if ( ( is_admin() && 'admin_enqueue_scripts' !== $current_filter ) ||
( 'wp-login.php' === $GLOBALS['pagenow'] && 'login_enqueue_scripts' !== $current_filter )
) {
- $no = array(
+ $not_allowed = array(
'jquery',
'jquery-core',
'jquery-migrate',
@@ -277,9 +299,9 @@
'backbone',
);
- if ( in_array( $handle, $no ) ) {
+ if ( in_array( $handle, $not_allowed, true ) ) {
$message = sprintf(
- /* translators: 1: script name, 2: wp_enqueue_scripts */
+ /* translators: 1: Script name, 2: wp_enqueue_scripts */
__( 'Do not deregister the %1$s script in the administration area. To target the front-end theme, use the %2$s hook.' ),
"$handle
",
'wp_enqueue_scripts
'
@@ -306,7 +328,7 @@
* @param string $handle Name of the script. Should be unique.
* @param string $src Full URL of the script, or path of the script relative to the WordPress root directory.
* Default empty.
- * @param array $deps Optional. An array of registered script handles this script depends on. Default empty array.
+ * @param string[] $deps Optional. An array of registered script handles this script depends on. Default empty array.
* @param string|bool|null $ver Optional. String specifying script version number, if it has one, which is added to the URL
* as a query string for cache busting purposes. If version is set to false, a version
* number is automatically added equal to current installed WordPress version.
@@ -315,9 +337,9 @@
* Default 'false'.
*/
function wp_enqueue_script( $handle, $src = '', $deps = array(), $ver = false, $in_footer = false ) {
- $wp_scripts = wp_scripts();
+ _wp_scripts_maybe_doing_it_wrong( __FUNCTION__, $handle );
- _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
+ $wp_scripts = wp_scripts();
if ( $src || $in_footer ) {
$_handle = explode( '?', $handle );
@@ -344,7 +366,7 @@
* @param string $handle Name of the script to be removed.
*/
function wp_dequeue_script( $handle ) {
- _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
+ _wp_scripts_maybe_doing_it_wrong( __FUNCTION__, $handle );
wp_scripts()->dequeue( $handle );
}
@@ -365,7 +387,7 @@
* @return bool Whether the script is queued.
*/
function wp_script_is( $handle, $list = 'enqueued' ) {
- _wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
+ _wp_scripts_maybe_doing_it_wrong( __FUNCTION__, $handle );
return (bool) wp_scripts()->query( $handle, $list );
}