wp-includes/script-loader.php:2931Formats <script> loader tags.
$attributesstringOne hook fires while wp_get_script_tag() runs, in this order:
Filters attributes to be added to a script tag.
function wp_get_script_tag( $attributes ) { /** * Filters attributes to be added to a script tag. * * @since 5.7.0 * * @param array $attributes Key-value pairs representing `<script>` tag attributes. * Only the attribute name is added to the `<script>` tag for * entries with a boolean value, and that are true. */ $attributes = apply_filters( 'wp_script_attributes', $attributes ); $processor = new WP_HTML_Tag_Processor( '<script></script>' ); $processor->next_tag(); foreach ( $attributes as $name => $value ) { /* * Lexical variations of an attribute name may represent the * same attribute in HTML, therefore it’s possible that the * input array might contain duplicate attributes even though * it’s keyed on their name. Calling code should rewrite an * attribute’s value rather than sending a duplicate attribute. * * Example: * * array( 'id' => 'main', 'ID' => 'nav' ) * * In this example, there are two keys both describing the `id` * attribute. PHP array iteration is in key-insertion order so * the 'id' value will be set in the SCRIPT tag. */ if ( null !== $processor->get_attribute( $name ) ) { continue; } $processor->set_attribute( $name, $value ?? true ); } return "{$processor->get_updated_html()}\n";}Introduced in 5.7.0. One change between 6.7.7 and 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
$attributes retyped from array to untyped.verified against sourcesrc/wp-includes/script-loader.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.