Make WordPress Core


Ignore:
Timestamp:
06/27/2023 08:46:45 AM (2 years ago)
Author:
isabel_brison
Message:

Editor: refactor and stabilize selectors API.

Restructures the block.json selectors API by moving __experimentalSelector props into their own config, stabilizing the selectors API, and enabling more flexible styling options.

Props ramonopoly, spacedmonkey, aaronrobertshaw, onemaggie.
Fixes #58586.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/block-supports/settings.php

    r55255 r56058  
    6767 *
    6868 * @since 6.2.0
     69 * @since 6.3.0 Updated preset styles to use Selectors API.
    6970 * @access private
    7071 *
     
    9697    $blocks                  = $registry->get_all_registered();
    9798    foreach ( $blocks as $block_type ) {
    98         if (
    99             isset( $block_type->supports['__experimentalSelector'] ) &&
    100             is_string( $block_type->supports['__experimentalSelector'] )
    101         ) {
    102             $variables_root_selector .= ',' . $block_type->supports['__experimentalSelector'];
     99        /*
     100        * We only want to append selectors for block's using custom selectors
     101        * i.e. not `wp-block-<name>`.
     102        */
     103        $has_custom_selector =
     104            ( isset( $block_type->supports['__experimentalSelector'] ) && is_string( $block_type->supports['__experimentalSelector'] ) ) ||
     105            ( isset( $block_type->selectors['root'] ) && is_string( $block_type->selectors['root'] ) );
     106
     107        if ( $has_custom_selector ) {
     108            $variables_root_selector .= ',' . wp_get_block_css_selector( $block_type );
    103109        }
    104110    }
Note: See TracChangeset for help on using the changeset viewer.