wp/wp-includes/script-modules.php
changeset 21 48c4eec2b7e6
child 22 8c2e4d02f4ef
equal deleted inserted replaced
20:7b1b88e27a20 21:48c4eec2b7e6
       
     1 <?php
       
     2 /**
       
     3  * Script Modules API: Script Module functions
       
     4  *
       
     5  * @since 6.5.0
       
     6  *
       
     7  * @package WordPress
       
     8  * @subpackage Script Modules
       
     9  */
       
    10 
       
    11 /**
       
    12  * Retrieves the main WP_Script_Modules instance.
       
    13  *
       
    14  * This function provides access to the WP_Script_Modules instance, creating one
       
    15  * if it doesn't exist yet.
       
    16  *
       
    17  * @since 6.5.0
       
    18  *
       
    19  * @global WP_Script_Modules $wp_script_modules
       
    20  *
       
    21  * @return WP_Script_Modules The main WP_Script_Modules instance.
       
    22  */
       
    23 function wp_script_modules(): WP_Script_Modules {
       
    24 	global $wp_script_modules;
       
    25 
       
    26 	if ( ! ( $wp_script_modules instanceof WP_Script_Modules ) ) {
       
    27 		$wp_script_modules = new WP_Script_Modules();
       
    28 	}
       
    29 
       
    30 	return $wp_script_modules;
       
    31 }
       
    32 
       
    33 /**
       
    34  * Registers the script module if no script module with that script module
       
    35  * identifier has already been registered.
       
    36  *
       
    37  * @since 6.5.0
       
    38  *
       
    39  * @param string            $id      The identifier of the script module. Should be unique. It will be used in the
       
    40  *                                   final import map.
       
    41  * @param string            $src     Optional. Full URL of the script module, or path of the script module relative
       
    42  *                                   to the WordPress root directory. If it is provided and the script module has
       
    43  *                                   not been registered yet, it will be registered.
       
    44  * @param array             $deps    {
       
    45  *                                       Optional. List of dependencies.
       
    46  *
       
    47  *                                       @type string|array ...$0 {
       
    48  *                                           An array of script module identifiers of the dependencies of this script
       
    49  *                                           module. The dependencies can be strings or arrays. If they are arrays,
       
    50  *                                           they need an `id` key with the script module identifier, and can contain
       
    51  *                                           an `import` key with either `static` or `dynamic`. By default,
       
    52  *                                           dependencies that don't contain an `import` key are considered static.
       
    53  *
       
    54  *                                           @type string $id     The script module identifier.
       
    55  *                                           @type string $import Optional. Import type. May be either `static` or
       
    56  *                                                                `dynamic`. Defaults to `static`.
       
    57  *                                       }
       
    58  *                                   }
       
    59  * @param string|false|null $version Optional. String specifying the script module version number. Defaults to false.
       
    60  *                                   It is added to the URL as a query string for cache busting purposes. If $version
       
    61  *                                   is set to false, the version number is the currently installed WordPress version.
       
    62  *                                   If $version is set to null, no version is added.
       
    63  */
       
    64 function wp_register_script_module( string $id, string $src, array $deps = array(), $version = false ) {
       
    65 	wp_script_modules()->register( $id, $src, $deps, $version );
       
    66 }
       
    67 
       
    68 /**
       
    69  * Marks the script module to be enqueued in the page.
       
    70  *
       
    71  * If a src is provided and the script module has not been registered yet, it
       
    72  * will be registered.
       
    73  *
       
    74  * @since 6.5.0
       
    75  *
       
    76  * @param string            $id      The identifier of the script module. Should be unique. It will be used in the
       
    77  *                                   final import map.
       
    78  * @param string            $src     Optional. Full URL of the script module, or path of the script module relative
       
    79  *                                   to the WordPress root directory. If it is provided and the script module has
       
    80  *                                   not been registered yet, it will be registered.
       
    81  * @param array             $deps    {
       
    82  *                                       Optional. List of dependencies.
       
    83  *
       
    84  *                                       @type string|array ...$0 {
       
    85  *                                           An array of script module identifiers of the dependencies of this script
       
    86  *                                           module. The dependencies can be strings or arrays. If they are arrays,
       
    87  *                                           they need an `id` key with the script module identifier, and can contain
       
    88  *                                           an `import` key with either `static` or `dynamic`. By default,
       
    89  *                                           dependencies that don't contain an `import` key are considered static.
       
    90  *
       
    91  *                                           @type string $id     The script module identifier.
       
    92  *                                           @type string $import Optional. Import type. May be either `static` or
       
    93  *                                                                `dynamic`. Defaults to `static`.
       
    94  *                                       }
       
    95  *                                   }
       
    96  * @param string|false|null $version Optional. String specifying the script module version number. Defaults to false.
       
    97  *                                   It is added to the URL as a query string for cache busting purposes. If $version
       
    98  *                                   is set to false, the version number is the currently installed WordPress version.
       
    99  *                                   If $version is set to null, no version is added.
       
   100  */
       
   101 function wp_enqueue_script_module( string $id, string $src = '', array $deps = array(), $version = false ) {
       
   102 	wp_script_modules()->enqueue( $id, $src, $deps, $version );
       
   103 }
       
   104 
       
   105 /**
       
   106  * Unmarks the script module so it is no longer enqueued in the page.
       
   107  *
       
   108  * @since 6.5.0
       
   109  *
       
   110  * @param string $id The identifier of the script module.
       
   111  */
       
   112 function wp_dequeue_script_module( string $id ) {
       
   113 	wp_script_modules()->dequeue( $id );
       
   114 }
       
   115 
       
   116 /**
       
   117  * Deregisters the script module.
       
   118  *
       
   119  * @since 6.5.0
       
   120  *
       
   121  * @param string $id The identifier of the script module.
       
   122  */
       
   123 function wp_deregister_script_module( string $id ) {
       
   124 	wp_script_modules()->deregister( $id );
       
   125 }