enqueue_block_assets
Позволяет добавить общие для фронта и бэка стили и скрипты для редактора блоков (в том числе внутри 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...
}
Примеры
#1 Добавим общие стили для отображения блока
Стили будут работать при редактировании записи и на фронте (клиентской стороне интерфейса).
add_action( 'enqueue_block_assets', 'example_general_style' );
function example_general_style(){
wp_enqueue_style( 'example', plugins_url( 'example.css', __FILE__ ) );
} #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 | Введена. |
Где вызывается хук
do_action( 'enqueue_block_assets' );
do_action( 'enqueue_block_assets' );
Где используется хук в WordPress
add_action( 'enqueue_block_assets', 'wp_enqueue_classic_theme_styles' );
add_action( 'enqueue_block_assets', 'wp_enqueue_registered_block_scripts_and_styles' );
add_action( 'enqueue_block_assets', 'enqueue_block_styles_assets', 30 );
add_action( 'enqueue_block_assets', $callback );