enqueue_block_styles_assets()

Function responsible for enqueuing the styles required for block styles functionality on the editor and on the frontend.


Source

File: wp-includes/script-loader.php

function enqueue_block_styles_assets() {
	global $wp_styles;

	$block_styles = WP_Block_Styles_Registry::get_instance()->get_all_registered();

	foreach ( $block_styles as $block_name => $styles ) {
		foreach ( $styles as $style_properties ) {
			if ( isset( $style_properties['style_handle'] ) ) {

				// If the site loads separate styles per-block, enqueue the stylesheet on render.
				if ( wp_should_load_separate_core_block_assets() ) {
					add_filter(
						'render_block',
						function( $html, $block ) use ( $block_name, $style_properties ) {
							if ( $block['blockName'] === $block_name ) {
								wp_enqueue_style( $style_properties['style_handle'] );
							}
							return $html;
						},
						10,
						2
					);
				} else {
					wp_enqueue_style( $style_properties['style_handle'] );
				}
			}
			if ( isset( $style_properties['inline_style'] ) ) {

				// Default to "wp-block-library".
				$handle = 'wp-block-library';

				// If the site loads separate styles per-block, check if the block has a stylesheet registered.
				if ( wp_should_load_separate_core_block_assets() ) {
					$block_stylesheet_handle = generate_block_asset_handle( $block_name, 'style' );

					if ( isset( $wp_styles->registered[ $block_stylesheet_handle ] ) ) {
						$handle = $block_stylesheet_handle;
					}
				}

				// Add inline styles to the calculated handle.
				wp_add_inline_style( $handle, $style_properties['inline_style'] );
			}
		}
	}
}


Top ↑

Changelog

Changelog
Version Description
5.3.0 Introduced.

Top ↑

User Contributed Notes

  1. Skip to note 1 content
    Contributed by Will Skora

    If you want opt-out of loading CSS for the core blocks, loaded in the wp-block-library stylesheet, you can do so by the following:

    function mytheme_block_assets() {
    	wp_deregister_style( 'wp-block-library' );
    	wp_register_style( 'wp-block-library', '' );
    }
    add_action( 'enqueue_block_assets', 'mytheme_block_assets' );

    (credit to Adam Jacobi and Brad Thomason )

You must log in before being able to contribute a note or feedback.