register_block_script_handle()
最后更新于:2021-11-27 21:29:10
register_block_script_handle( array$metadata, string$field_name)Finds a script handle for the selected block metadata field. It detects when a path to file was provided and finds a corresponding asset file with details necessary to register the script under automatically generated handle name. It returns unprocessed script handle otherwise.
参数
- $metadata
-
(array) (Required) Block metadata.
- $field_name
-
(string) (Required) Field name to pick from metadata.
响应
(string|false) Script handle provided directly or created through script’s registration, or false on failure.
源文件
文件: gc-includes/blocks.php
function register_block_script_handle( $metadata, $field_name ) {
if ( empty( $metadata[ $field_name ] ) ) {
return false;
}
$script_handle = $metadata[ $field_name ];
$script_path = remove_block_asset_path_prefix( $metadata[ $field_name ] );
if ( $script_handle === $script_path ) {
return $script_handle;
}
$script_handle = generate_block_asset_handle( $metadata['name'], $field_name );
$script_asset_path = realpath(
dirname( $metadata['file'] ) . '/' .
substr_replace( $script_path, '.asset.php', - strlen( '.js' ) )
);
if ( ! file_exists( $script_asset_path ) ) {
_doing_it_wrong(
__FUNCTION__,
sprintf(
/* translators: 1: Field name, 2: Block name. */
__( 'The asset file for the "%1$s" defined in "%2$s" block definition is missing.' ),
$field_name,
$metadata['name']
),
'5.5.0'
);
return false;
}
$script_asset = require $script_asset_path;
$result = gc_register_script(
$script_handle,
plugins_url( $script_path, $metadata['file'] ),
$script_asset['dependencies'],
$script_asset['version']
);
if ( ! $result ) {
return false;
}
if ( ! empty( $metadata['textdomain'] ) ) {
gc_set_script_translations( $script_handle, $metadata['textdomain'] );
}
return $script_handle;
}