diff --git a/wp-includes/blocks.php b/wp-includes/blocks.php index f19648c2d6..fc8f343fa8 100644 --- a/wp-includes/blocks.php +++ b/wp-includes/blocks.php @@ -1228,112 +1228,6 @@ function get_query_pagination_arrow( $block, $is_next ) { return null; } -/** - * Enqueues a stylesheet for a specific block. - * - * If the theme has opted-in to separate-styles loading, - * then the stylesheet will be enqueued on-render, - * otherwise when the block inits. - * - * @since 5.9.0 - * - * @param string $block_name The block-name, including namespace. - * @param array $args An array of arguments [handle,src,deps,ver,media]. - * @return void - */ -function wp_enqueue_block_style( $block_name, $args ) { - $args = wp_parse_args( - $args, - array( - 'handle' => '', - 'src' => '', - 'deps' => array(), - 'ver' => false, - 'media' => 'all', - ) - ); - - /** - * Callback function to register and enqueue styles. - * - * @param string $content When the callback is used for the render_block filter, - * the content needs to be returned so the function parameter - * is to ensure the content exists. - * @return string Block content. - */ - $callback = static function( $content ) use ( $args ) { - // Register the stylesheet. - if ( ! empty( $args['src'] ) ) { - wp_register_style( $args['handle'], $args['src'], $args['deps'], $args['ver'], $args['media'] ); - } - - // Add `path` data if provided. - if ( isset( $args['path'] ) ) { - wp_style_add_data( $args['handle'], 'path', $args['path'] ); - - // Get the RTL file path. - $rtl_file_path = str_replace( '.css', '-rtl.css', $args['path'] ); - - // Add RTL stylesheet. - if ( file_exists( $rtl_file_path ) ) { - wp_style_add_data( $args['handle'], 'rtl', 'replace' ); - - if ( is_rtl() ) { - wp_style_add_data( $args['handle'], 'path', $rtl_file_path ); - } - } - } - - // Enqueue the stylesheet. - wp_enqueue_style( $args['handle'] ); - - return $content; - }; - - $hook = did_action( 'wp_enqueue_scripts' ) ? 'wp_footer' : 'wp_enqueue_scripts'; - if ( wp_should_load_separate_core_block_assets() ) { - /** - * Callback function to register and enqueue styles. - * - * @param string $content The block content. - * @param array $block The full block, including name and attributes. - * @return string Block content. - */ - $callback_separate = static function( $content, $block ) use ( $block_name, $callback ) { - if ( ! empty( $block['blockName'] ) && $block_name === $block['blockName'] ) { - return $callback( $content ); - } - return $content; - }; - - /* - * The filter's callback here is an anonymous function because - * using a named function in this case is not possible. - * - * The function cannot be unhooked, however, users are still able - * to dequeue the stylesheets registered/enqueued by the callback - * which is why in this case, using an anonymous function - * was deemed acceptable. - */ - add_filter( 'render_block', $callback_separate, 10, 2 ); - return; - } - - /* - * The filter's callback here is an anonymous function because - * using a named function in this case is not possible. - * - * The function cannot be unhooked, however, users are still able - * to dequeue the stylesheets registered/enqueued by the callback - * which is why in this case, using an anonymous function - * was deemed acceptable. - */ - add_filter( $hook, $callback ); - - // Enqueue assets in the editor. - add_action( 'enqueue_block_assets', $callback ); -} - /** * Allow multiple block styles. * diff --git a/wp-includes/script-loader.php b/wp-includes/script-loader.php index 4c73e4b167..3bd6152656 100644 --- a/wp-includes/script-loader.php +++ b/wp-includes/script-loader.php @@ -2921,3 +2921,109 @@ function wp_enqueue_block_support_styles( $style ) { } ); } + +/** + * Enqueues a stylesheet for a specific block. + * + * If the theme has opted-in to separate-styles loading, + * then the stylesheet will be enqueued on-render, + * otherwise when the block inits. + * + * @since 5.9.0 + * + * @param string $block_name The block-name, including namespace. + * @param array $args An array of arguments [handle,src,deps,ver,media]. + * @return void + */ +function wp_enqueue_block_style( $block_name, $args ) { + $args = wp_parse_args( + $args, + array( + 'handle' => '', + 'src' => '', + 'deps' => array(), + 'ver' => false, + 'media' => 'all', + ) + ); + + /** + * Callback function to register and enqueue styles. + * + * @param string $content When the callback is used for the render_block filter, + * the content needs to be returned so the function parameter + * is to ensure the content exists. + * @return string Block content. + */ + $callback = static function( $content ) use ( $args ) { + // Register the stylesheet. + if ( ! empty( $args['src'] ) ) { + wp_register_style( $args['handle'], $args['src'], $args['deps'], $args['ver'], $args['media'] ); + } + + // Add `path` data if provided. + if ( isset( $args['path'] ) ) { + wp_style_add_data( $args['handle'], 'path', $args['path'] ); + + // Get the RTL file path. + $rtl_file_path = str_replace( '.css', '-rtl.css', $args['path'] ); + + // Add RTL stylesheet. + if ( file_exists( $rtl_file_path ) ) { + wp_style_add_data( $args['handle'], 'rtl', 'replace' ); + + if ( is_rtl() ) { + wp_style_add_data( $args['handle'], 'path', $rtl_file_path ); + } + } + } + + // Enqueue the stylesheet. + wp_enqueue_style( $args['handle'] ); + + return $content; + }; + + $hook = did_action( 'wp_enqueue_scripts' ) ? 'wp_footer' : 'wp_enqueue_scripts'; + if ( wp_should_load_separate_core_block_assets() ) { + /** + * Callback function to register and enqueue styles. + * + * @param string $content The block content. + * @param array $block The full block, including name and attributes. + * @return string Block content. + */ + $callback_separate = static function( $content, $block ) use ( $block_name, $callback ) { + if ( ! empty( $block['blockName'] ) && $block_name === $block['blockName'] ) { + return $callback( $content ); + } + return $content; + }; + + /* + * The filter's callback here is an anonymous function because + * using a named function in this case is not possible. + * + * The function cannot be unhooked, however, users are still able + * to dequeue the stylesheets registered/enqueued by the callback + * which is why in this case, using an anonymous function + * was deemed acceptable. + */ + add_filter( 'render_block', $callback_separate, 10, 2 ); + return; + } + + /* + * The filter's callback here is an anonymous function because + * using a named function in this case is not possible. + * + * The function cannot be unhooked, however, users are still able + * to dequeue the stylesheets registered/enqueued by the callback + * which is why in this case, using an anonymous function + * was deemed acceptable. + */ + add_filter( $hook, $callback ); + + // Enqueue assets in the editor. + add_action( 'enqueue_block_assets', $callback ); +} diff --git a/wp-includes/version.php b/wp-includes/version.php index a736f25831..550db8840f 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.0-beta2-53233'; +$wp_version = '6.0-beta2-53234'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.