Make WordPress Core

Changeset 58421


Ignore:
Timestamp:
06/17/2024 03:47:37 AM (11 months ago)
Author:
isabel_brison
Message:

Editor: fix custom CSS output for block style variations.

Adds custom CSS to the block style variation rules output by get_styles_for_block in class WP_Theme_JSON.

Props isabel_brison, aaronrobertshaw.
Fixes #61425.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-theme-json.php

    r58413 r58421  
    26482648     * @since 6.6.0 Setting a min-height of HTML when root styles have a background gradient or image.
    26492649     *              Updated general global styles specificity to 0-1-0.
     2650     *              Fixed custom CSS output in block style variations.
    26502651     *
    26512652     * @param array $block_metadata Metadata about the block to get styles for.
     
    26632664        // If there are style variations, generate the declarations for them, including any feature selectors the block may have.
    26642665        $style_variation_declarations = array();
     2666        $style_variation_custom_css   = array();
    26652667        if ( ! empty( $block_metadata['variations'] ) ) {
    26662668            foreach ( $block_metadata['variations'] as $style_variation ) {
     
    26922694                // Compute declarations for remaining styles not covered by feature level selectors.
    26932695                $style_variation_declarations[ $style_variation['selector'] ] = static::compute_style_properties( $style_variation_node, $settings, null, $this->theme_json );
     2696                // Store custom CSS for the style variation.
     2697                if ( isset( $style_variation_node['css'] ) ) {
     2698                    $style_variation_custom_css[ $style_variation['selector'] ] = $this->process_blocks_custom_css( $style_variation_node['css'], $style_variation['selector'] );
     2699                }
    26942700            }
    26952701        }
     
    28202826        foreach ( $style_variation_declarations as $style_variation_selector => $individual_style_variation_declarations ) {
    28212827            $block_rules .= static::to_ruleset( ":root :where($style_variation_selector)", $individual_style_variation_declarations );
     2828            if ( isset( $style_variation_custom_css[ $style_variation_selector ] ) ) {
     2829                $block_rules .= $style_variation_custom_css[ $style_variation_selector ];
     2830            }
     2831        }
     2832
     2833        // 7. Generate and append any custom CSS rules pertaining to nested block style variations.
     2834        if ( isset( $node['css'] ) && ! $is_root_selector ) {
     2835            $block_rules .= $this->process_blocks_custom_css( $node['css'], $selector );
    28222836        }
    28232837
Note: See TracChangeset for help on using the changeset viewer.