mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-04-06 13:44:30 +00:00
Editor: Backport Elements API updates.
This commit backports the original PRs from Gutenberg repository: * [https://github.com/WordPress/gutenberg/pull/40260 #40260 Add support for button elements to theme.json] * [https://github.com/WordPress/gutenberg/pull/40889 #40889 Theme Json: Don't output double selectors for elements inside blocks] * [https://github.com/WordPress/gutenberg/pull/41140 #41140 Global Styles: Add support for caption elements] * [https://github.com/WordPress/gutenberg/pull/41160 #41160 Global Styles: Load block CSS conditionally] * [https://github.com/WordPress/gutenberg/pull/41240 #41240 Global Styles: Button Element: update button element selector] * [https://github.com/WordPress/gutenberg/pull/41335 #41335 Duotone: Fix CSS Selectors rendered by theme.json duotone/filter settings for blocks on public pages] * [https://github.com/WordPress/gutenberg/pull/41446 #41446 Block styles: Account for style block nodes that have no name] * [https://github.com/WordPress/gutenberg/pull/41696 #41696 Global Styles: Allow references to values in other locations in the tree] * [https://github.com/WordPress/gutenberg/pull/41753 #41753 Elements: Add an API make it easier to get class names] * [https://github.com/WordPress/gutenberg/pull/41786 #41786 Support pseudo selectors on elements in theme json] * [https://github.com/WordPress/gutenberg/pull/41822 #41822 Elements: Button - Fix element selectors] * [https://github.com/WordPress/gutenberg/pull/41981 #41981 Global Styles: Add support for heading elements] * [https://github.com/WordPress/gutenberg/pull/42072 #42072 Fix link element hover bleeding into button element default styles] * [https://github.com/WordPress/gutenberg/pull/42096 #42096 Add visited to link element allowed pseudo selector list] * [https://github.com/WordPress/gutenberg/pull/42669 #42669 Link elements: Add a :where selector to the :not to lower specificity] * [https://github.com/WordPress/gutenberg/pull/42776 #42776 Theme JSON: Add a static $blocks_metadata data definition to the Gutenberg instance of WP_Theme_JSON] * [https://github.com/WordPress/gutenberg/pull/43088 #43088 Pseudo elements supports on button elements] * [https://github.com/WordPress/gutenberg/pull/43167 #43167 Theme_JSON: Use existing append_to_selector for pseudo elements] * [https://github.com/WordPress/gutenberg/pull/43988 #43988 Styles API: Fixed selectors for nested elements] Props onemaggie, bernhard-reiter, cbravobernal, mmaattiiaass, scruffian, andraganescu, dpcalhoun, get_dave, Mamaduka, SergeyBiryukov. See #56467. git-svn-id: https://develop.svn.wordpress.org/trunk@54118 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -2353,6 +2353,30 @@ function wp_common_block_scripts_and_styles() {
|
||||
do_action( 'enqueue_block_assets' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies a filter to the list of style nodes that comes from WP_Theme_JSON::get_style_nodes().
|
||||
*
|
||||
* This particular filter removes all of the blocks from the array.
|
||||
*
|
||||
* We want WP_Theme_JSON to be ignorant of the implementation details of how the CSS is being used.
|
||||
* This filter allows us to modify the output of WP_Theme_JSON depending on whether or not we are
|
||||
* loading separate assets, without making the class aware of that detail.
|
||||
*
|
||||
* @since 6.1.0
|
||||
*
|
||||
* @param array $nodes The nodes to filter.
|
||||
* @return array A filtered array of style nodes.
|
||||
*/
|
||||
function wp_filter_out_block_nodes( $nodes ) {
|
||||
return array_filter(
|
||||
$nodes,
|
||||
function( $node ) {
|
||||
return ! in_array( 'blocks', $node['path'], true );
|
||||
},
|
||||
ARRAY_FILTER_USE_BOTH
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Enqueues the global styles defined via theme.json.
|
||||
*
|
||||
@@ -2377,6 +2401,16 @@ function wp_enqueue_global_styles() {
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* If we are loading CSS for each block separately, then we can load the theme.json CSS conditionally.
|
||||
* This removes the CSS from the global-styles stylesheet and adds it to the inline CSS for each block.
|
||||
*/
|
||||
if ( $separate_assets ) {
|
||||
add_filter( 'get_style_nodes', 'wp_filter_out_block_nodes' );
|
||||
// Add each block as an inline css.
|
||||
wp_add_global_styles_for_blocks();
|
||||
}
|
||||
|
||||
$stylesheet = wp_get_global_stylesheet();
|
||||
|
||||
if ( empty( $stylesheet ) ) {
|
||||
|
||||
Reference in New Issue
Block a user