script_module_data_{$module_id}
Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.
Сигнатура
apply_filters( "script_module_data_{$module_id}", array $data )
Описание
Модулям скриптов могут требоваться данные, необходимые для инициализации или обязательно доступные сразу при загрузке страницы. Это подходящие случаи применения таких данных.
Динамическая часть имени хука, $module_id, соответствует идентификатору модуля скрипта, с которым связаны данные.
Это лучше всего подходит для передачи важных данных, которые должны быть доступны модулю для инициализации или сразу при загрузке страницы. Это не заменяет REST API или получение данных со стороны клиента.
Пример:
add_filter(
'script_module_data_MyScriptModuleID',
function ( array $data ): array {
$data['dataForClient'] = 'ok';
return $data;
}
);Если фильтр не возвращает данных (пустой массив), в страницу ничего не встраивается.
Данные для данного модуля скрипта, если они предоставлены, будут сериализованы в JSON внутри тега script с идентификатором вида wp-script-module-data-{$module_id}.
Данные можно прочитать на стороне клиента примерно так:
Пример:
const dataContainer = document.getElementById( 'wp-script-module-data-MyScriptModuleID' );
let data = {};
if ( dataContainer ) {
try {
data = JSON.parse( dataContainer.textContent );
} catch {}
}
// data.dataForClient === 'ok';
initMyScriptModuleWithData( data );
Оригинал (английский)
Script Modules may require data that is required for initialization or is essential to have immediately available on page load. These are suitable use cases for this data.
The dynamic portion of the hook name, $module_id, refers to the Script Module ID that the data is associated with.
This is best suited to pass essential data that must be available to the module for initialization or immediately on page load. It does not replace the REST API or fetching data from the client.
Example:
add_filter(
'script_module_data_MyScriptModuleID',
function ( array $data ): array {
$data['dataForClient'] = 'ok';
return $data;
}
);
If the filter returns no data (an empty array), nothing will be embedded in the page.
The data for a given Script Module, if provided, will be JSON serialized in a script tag with an ID of the form wp-script-module-data-{$module_id}.
The data can be read on the client with a pattern like this:
Example:
const dataContainer = document.getElementById( 'wp-script-module-data-MyScriptModuleID' );
let data = {};
if ( dataContainer ) {
try {
data = JSON.parse( dataContainer.textContent );
} catch {}
}
// data.dataForClient === 'ok';
initMyScriptModuleWithData( data );
Динамические части имени
{$module_id}- Динамическая часть имени хука, $module_id, соответствует идентификатору модуля скрипта, с которым связаны данные.
Фильтруемое значение
Параметры
$data
array
обязательный
Исходный код
wp-includes/class-wp-script-modules.php:1079
$data = apply_filters( "script_module_data_{$module_id}", array() );
История изменений
| Версия | Описание |
|---|---|
| 6.7.0 | Introduced. |

