enqueue_block_assetsхук-событиеWP 5.0.0

Позволяет добавить общие для фронта и бэка стили и скрипты для редактора блоков (в том числе внутри iframe).

Вызывается после подключения ассетов блоков из функции wp_common_block_scripts_and_styles(), которая в свою очередь висит на хуках:

add_action( 'wp_enqueue_scripts', 'wp_common_block_scripts_and_styles' );
add_action( 'admin_enqueue_scripts', 'wp_common_block_scripts_and_styles' );

Таким образом, хук нужно использовать ДО событий: admin_enqueue_scripts или wp_enqueue_scripts.

В вызываемой функции обычно используют wp_enqueue_script и wp_enqueue_style.

С версии WordPress 6.3 ресурсы, добавленные через этот хук, также загружаются в iframed-редакторе, если все зарегистрированные блоки используют Block API версии 3 или выше и не используются традиционные метабоксы.

Если необходимо подключить ресурсы только в редакторе, можно использовать условие is_admin() внутри коллбэк-функции.

Важно отметить, что стили, добавленные через этот хук, применяются как к содержимому блоков, так и к интерфейсу редактора. Если стили не ограничены определёнными селекторами, они могут повлиять на элементы интерфейса редактора. Для предотвращения этого рекомендуется использовать специфичные селекторы, такие как .editor-styles-wrapper или .wp-block-*.

Используйте enqueue_block_editor_assets, когда нужно добавить скрипты/стили только в админке на странице где есть редактор блоков (не добавляет ничего внуть iframe).

Использование

add_action( 'enqueue_block_assets', 'wp_kama_enqueue_block_assets_action' );

/**
 * Function for `enqueue_block_assets` action-hook.
 * 
 * @return void
 */
function wp_kama_enqueue_block_assets_action(){

	// action...
}

Примеры

0

#1 Добавим общие стили для отображения блока

Стили будут работать при редактировании записи и на фронте (клиентской стороне интерфейса).

add_action( 'enqueue_block_assets', 'example_general_style' );

function example_general_style(){
	wp_enqueue_style( 'example', plugins_url( 'example.css', __FILE__ ) );
}
0

#2 Подключим стили только для админки

Если нужно, чтобы такие стили или сприпты подключались только в админ-панели, то можно использвоать условие is_admin(). Пример:

/// Регистрирует и подключает css стили только для админ панели.
add_action( 'enqueue_block_assets', 'wpdocs_enqueue_editor_styles' );

function wpdocs_enqueue_editor_styles() {
	if( is_admin() ){
		wp_enqueue_style( 'prefix-style', THEME_URL . '/assets/styles/admin.css' );
	}
}

С WP 6.3, стили и скрипты, добавленные через enqueue_block_assets, будут подключены и для iframe редактора.

Список изменений

С версии 5.0.0 Введена.

Где вызывается хук

wp_common_block_scripts_and_styles()
enqueue_block_assets
_wp_get_iframed_editor_assets()
enqueue_block_assets
wp-includes/script-loader.php 2483
do_action( 'enqueue_block_assets' );
wp-includes/block-editor.php 341
do_action( 'enqueue_block_assets' );

Где используется хук в WordPress

wp-includes/default-filters.php 594
add_action( 'enqueue_block_assets', 'wp_enqueue_classic_theme_styles' );
wp-includes/default-filters.php 595
add_action( 'enqueue_block_assets', 'wp_enqueue_registered_block_scripts_and_styles' );
wp-includes/default-filters.php 596
add_action( 'enqueue_block_assets', 'enqueue_block_styles_assets', 30 );
wp-includes/script-loader.php 3374
add_action( 'enqueue_block_assets', $callback );