# register_block_script_module_id()

URL: https://chugunov.pro/api-wordpress/functions/register_block_script_module_id/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 6.5.0.

## Сигнатура

```php
register_block_script_module_id( array $metadata, string $field_name, int $index ): string|false
```

## Описание

Находит ID модуля скрипта для выбранного поля метаданных блока. Определяет, когда указан путь к файлу, и при необходимости находит соответствующий файл ресурса с данными, необходимыми для регистрации модуля скрипта под автоматически сгенерированным ID модуля. В противном случае возвращает необработанный ID модуля скрипта.

## Параметры

- `$metadata` `array` — обязательный. Метаданные блока.
- `$field_name` `string` — обязательный. Имя поля, выбираемого из метаданных.
- `$index` `int` — необязательный. Индекс ID модуля скрипта для регистрации, когда передано несколько элементов. По умолчанию 0.

## Возвращаемое значение

`string|false`

## Исходный код

Файл: `wp-includes/blocks.php:145`

```php
function register_block_script_module_id( $metadata, $field_name, $index = 0 ) {
	if ( empty( $metadata[ $field_name ] ) ) {
		return false;
	}

	$module_id = $metadata[ $field_name ];
	if ( is_array( $module_id ) ) {
		if ( empty( $module_id[ $index ] ) ) {
			return false;
		}
		$module_id = $module_id[ $index ];
	}

	$module_path = remove_block_asset_path_prefix( $module_id );
	if ( $module_id === $module_path ) {
		return $module_id;
	}

	$path                  = dirname( $metadata['file'] );
	$module_asset_raw_path = $path . '/' . substr_replace( $module_path, '.asset.php', - strlen( '.js' ) );
	$module_id             = generate_block_asset_handle( $metadata['name'], $field_name, $index );
	$module_asset_path     = wp_normalize_path(
		realpath( $module_asset_raw_path )
	);

	$module_path_norm = wp_normalize_path( realpath( $path . '/' . $module_path ) );
	$module_uri       = get_block_asset_url( $module_path_norm );

	$module_asset        = ! empty( $module_asset_path ) ? require $module_asset_path : array();
	$module_dependencies = $module_asset['dependencies'] ?? array();
	$block_version       = $metadata['version'] ?? false;
	$module_version      = $module_asset['version'] ?? $block_version;

	$supports_interactivity_true = isset( $metadata['supports']['interactivity'] ) && true === $metadata['supports']['interactivity'];
	$is_interactive              = $supports_interactivity_true || ( isset( $metadata['supports']['interactivity']['interactive'] ) && true === $metadata['supports']['interactivity']['interactive'] );
	$supports_client_navigation  = $supports_interactivity_true || ( isset( $metadata['supports']['interactivity']['clientNavigation'] ) && true === $metadata['supports']['interactivity']['clientNavigation'] );

	$args = array();

	// Blocks using the Interactivity API are server-side rendered, so they are
	// by design not in the critical rendering path and should be deprioritized.
	if ( $is_interactive ) {
		$args['fetchpriority'] = 'low';
		$args['in_footer']     = true;
	}

	// Blocks using the Interactivity API that support client-side navigation
	// must be marked as such in their script modules.
	if ( $is_interactive && $supports_client_navigation ) {
		wp_interactivity()->add_client_navigation_support_to_script_module( $module_id );
	}

	wp_register_script_module(
		$module_id,
		$module_uri,
		$module_dependencies,
		$module_version,
		$args
	);

	return $module_id;
}
```

## История изменений

- 6.5.0 — Introduced.

## Связанные

Использует: [`wp_interactivity`](https://chugunov.pro/api-wordpress/functions/wp_interactivity/), `WP_Interactivity_API`, [`wp_register_script_module`](https://chugunov.pro/api-wordpress/functions/wp_register_script_module/), [`get_block_asset_url`](https://chugunov.pro/api-wordpress/functions/get_block_asset_url/), [`generate_block_asset_handle`](https://chugunov.pro/api-wordpress/functions/generate_block_asset_handle/), [`remove_block_asset_path_prefix`](https://chugunov.pro/api-wordpress/functions/remove_block_asset_path_prefix/), [`wp_normalize_path`](https://chugunov.pro/api-wordpress/functions/wp_normalize_path/).
Используется в: [`register_block_type_from_metadata`](https://chugunov.pro/api-wordpress/functions/register_block_type_from_metadata/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/register_block_script_module_id/
