diff --git a/src/wp-includes/class.wp-scripts.php b/src/wp-includes/class.wp-scripts.php index fbb8b2202d..e7df14e6b3 100644 --- a/src/wp-includes/class.wp-scripts.php +++ b/src/wp-includes/class.wp-scripts.php @@ -142,7 +142,7 @@ class WP_Scripts extends WP_Dependencies { $tag = "\n"; - /** + /** * Filter the HTML script tag of an enqueued script. * * @since 4.1.0 @@ -171,6 +171,10 @@ class WP_Scripts extends WP_Dependencies { if ( $handle === 'jquery' ) $handle = 'jquery-core'; + if ( is_callable( $l10n ) ) { + $l10n = call_user_func( $l10n ); + } + if ( is_array($l10n) && isset($l10n['l10n_print_after']) ) { // back compat, preserve the code in 'l10n_print_after' if present $after = $l10n['l10n_print_after']; unset($l10n['l10n_print_after']); diff --git a/src/wp-includes/functions.wp-scripts.php b/src/wp-includes/functions.wp-scripts.php index 0e09a2dd66..638693716c 100644 --- a/src/wp-includes/functions.wp-scripts.php +++ b/src/wp-includes/functions.wp-scripts.php @@ -106,10 +106,11 @@ function wp_register_script( $handle, $src, $deps = array(), $ver = false, $in_f * * @todo Documentation cleanup * - * @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 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|callable $l10n The data itself. The data can be either a single or multi-dimensional array. If a callable + * is passed, it will be invoked at runtime. * @return bool True if the script was successfully localized, false otherwise. */ function wp_localize_script( $handle, $object_name, $l10n ) {