Editor: Conditionally load registered styles for block variations
In WordPress 5.8 we added the ability to only load styles for blocks when these blocks are rendered. However, these optimizations left out block-styles that get added using the register_block_style() function/API. Props aristath. Fixes #53616. Built from https://develop.svn.wordpress.org/trunk@51471 git-svn-id: http://core.svn.wordpress.org/trunk@51082 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
352fe2a88f
commit
60c39d7805
|
@ -2436,13 +2436,39 @@ function wp_enqueue_registered_block_scripts_and_styles() {
|
||||||
function enqueue_block_styles_assets() {
|
function enqueue_block_styles_assets() {
|
||||||
$block_styles = WP_Block_Styles_Registry::get_instance()->get_all_registered();
|
$block_styles = WP_Block_Styles_Registry::get_instance()->get_all_registered();
|
||||||
|
|
||||||
foreach ( $block_styles as $styles ) {
|
foreach ( $block_styles as $block_name => $styles ) {
|
||||||
foreach ( $styles as $style_properties ) {
|
foreach ( $styles as $style_properties ) {
|
||||||
if ( isset( $style_properties['style_handle'] ) ) {
|
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 ( $style_properties ) {
|
||||||
|
wp_enqueue_style( $style_properties['style_handle'] );
|
||||||
|
return $html;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} else {
|
||||||
wp_enqueue_style( $style_properties['style_handle'] );
|
wp_enqueue_style( $style_properties['style_handle'] );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if ( isset( $style_properties['inline_style'] ) ) {
|
if ( isset( $style_properties['inline_style'] ) ) {
|
||||||
wp_add_inline_style( 'wp-block-library', $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' );
|
||||||
|
global $wp_styles;
|
||||||
|
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'] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
*
|
*
|
||||||
* @global string $wp_version
|
* @global string $wp_version
|
||||||
*/
|
*/
|
||||||
$wp_version = '5.9-alpha-51470';
|
$wp_version = '5.9-alpha-51471';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||||
|
|
Loading…
Reference in New Issue