generate_block_asset_handle()WP 5.5.0

Generates the name for an asset based on the name of the block and the field name provided.

No Hooks.

Return

String. Generated asset name for the block's field.

Usage

generate_block_asset_handle( $block_name, $field_name, $index );
$block_name(string) (required)
Name of the block.
$field_name(string) (required)
Name of the metadata field.
$index(int)
Index of the asset when multiple items passed.

Changelog

Since 5.5.0 Introduced.
Since 6.1.0 Added $index parameter.
Since 6.5.0 Added support for viewScriptModule field.

generate_block_asset_handle() code WP 6.5.2

function generate_block_asset_handle( $block_name, $field_name, $index = 0 ) {
	if ( str_starts_with( $block_name, 'core/' ) ) {
		$asset_handle = str_replace( 'core/', 'wp-block-', $block_name );
		if ( str_starts_with( $field_name, 'editor' ) ) {
			$asset_handle .= '-editor';
		}
		if ( str_starts_with( $field_name, 'view' ) ) {
			$asset_handle .= '-view';
		}
		if ( str_ends_with( strtolower( $field_name ), 'scriptmodule' ) ) {
			$asset_handle .= '-script-module';
		}
		if ( $index > 0 ) {
			$asset_handle .= '-' . ( $index + 1 );
		}
		return $asset_handle;
	}

	$field_mappings = array(
		'editorScript'     => 'editor-script',
		'editorStyle'      => 'editor-style',
		'script'           => 'script',
		'style'            => 'style',
		'viewScript'       => 'view-script',
		'viewScriptModule' => 'view-script-module',
		'viewStyle'        => 'view-style',
	);
	$asset_handle   = str_replace( '/', '-', $block_name ) .
		'-' . $field_mappings[ $field_name ];
	if ( $index > 0 ) {
		$asset_handle .= '-' . ( $index + 1 );
	}
	return $asset_handle;
}