函数文档

wp_enqueue_script_module()

💡 云策文档标注

概述

wp_enqueue_script_module() 函数用于将脚本模块标记为在页面中排队加载,是 WordPress 6.5 引入的脚本模块系统的一部分。它支持注册和排队脚本模块,并处理依赖关系、版本控制和额外参数。

关键要点

  • 函数核心功能:标记脚本模块以在页面中排队,如果提供 src 且脚本模块未注册,会自动注册。
  • 参数详解:$id(必需,唯一标识符)、$src(可选,URL 或路径)、$deps(可选,依赖数组,支持静态或动态导入)、$version(可选,版本控制)、$args(可选,额外参数如 in_footer 和 fetchpriority)。
  • 依赖处理:依赖可以是字符串或数组,数组需包含 id 键,可选 import 键指定 static 或 dynamic,默认为 static。
  • 版本控制:$version 默认为 false(使用 WordPress 版本),null 表示不添加版本,字符串用于缓存清除。
  • 额外参数:$args 数组支持 in_footer(布尔值,仅块主题相关)和 fetchpriority(字符串,默认 'auto')。
  • 相关函数:与 WP_Script_Modules::enqueue() 和 wp_script_modules() 关联,用于块渲染等场景。
  • 变更历史:6.5.0 引入,6.9.0 添加 $args 参数。
  • 注意事项:在 admin_enqueue_scripts 钩子中可能不工作,因为脚本模块仅通过 wp_head 或 wp_footer 钩子打印,这可能在管理区域不触发。

代码示例

function wp_enqueue_script_module( string $id, string $src = '', array $deps = array(), $version = false, array $args = array() ) {
    wp_script_modules()->enqueue( $id, $src, $deps, $version, $args );
}

📄 原文内容

Marks the script module to be enqueued in the page.

Description

If a src is provided and the script module has not been registered yet, it will be registered.

Parameters

$idstringrequired
The identifier of the script module. Should be unique. It will be used in the final import map.
$srcstringoptional
Full URL of the script module, or path of the script module relative to the WordPress root directory. If it is provided and the script module has not been registered yet, it will be registered.
$depsarrayoptional
List of dependencies.

  • ...$0 string|array
    An array of script module identifiers of the dependencies of this script module. The dependencies can be strings or arrays. If they are arrays, they need an id key with the script module identifier, and can contain an import key with either static or dynamic. By default, dependencies that don’t contain an import key are considered static.

    • id string
      The script module identifier.
    • import string
      Optional. Import type. May be either static or dynamic. Defaults to static.

Default:array()

$versionstring|false|nulloptional
String specifying the script module version number. Defaults to false.
It is added to the URL as a query string for cache busting purposes. If $version is set to false, the version number is the currently installed WordPress version.
If $version is set to null, no version is added.

Default:false

$argsarrayoptional
An array of additional args.

  • in_footer bool
    Whether to print the script module in the footer. Only relevant to block themes. Default 'false'. Optional.
  • fetchpriority ‘auto’|’low’|’high’
    Fetch priority. Default 'auto'. Optional.

Default:array()

Source

function wp_enqueue_script_module( string $id, string $src = '', array $deps = array(), $version = false, array $args = array() ) {
	wp_script_modules()->enqueue( $id, $src, $deps, $version, $args );
}

Changelog

Version Description
6.9.0 Added the $args parameter.
6.5.0 Introduced.

User Contributed Notes

  1. Skip to note 4 content

    This appears to not work when using it with the `admin_enqueue_scripts` action hook. I have tried it over and over again, and it won’t print the script tag to the page.

    Digging into the code, it appears to only print the tag via the `wp_head` or `wp_footer` action hooks, which I suspect do not fire in the wp-admin area. This is a disappointment, as I hoped to use some modules in the back end on some custom admin pages for a custom plugin.

You must log in before being able to contribute a note or feedback.