--- a/wp/wp-includes/script-loader.php Fri Sep 05 18:40:08 2025 +0200
+++ b/wp/wp-includes/script-loader.php Fri Sep 05 18:52:52 2025 +0200
@@ -54,11 +54,10 @@
script_concat_settings();
- $compressed = $compress_scripts && $concatenate_scripts && isset( $_SERVER['HTTP_ACCEPT_ENCODING'] )
- && false !== stripos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip' ) && ! $force_uncompressed;
+ $compressed = $compress_scripts && $concatenate_scripts && ! $force_uncompressed;
/*
- * Load tinymce.js when running from /src, otherwise load wp-tinymce.js.gz (in production)
+ * Load tinymce.js when running from /src, otherwise load wp-tinymce.js (in production)
* or tinymce.min.js (when SCRIPT_DEBUG is true).
*/
if ( $compressed ) {
@@ -97,7 +96,6 @@
'lodash',
'wp-polyfill-fetch',
'wp-polyfill-formdata',
- 'wp-polyfill-importmap',
'wp-polyfill-node-contains',
'wp-polyfill-url',
'wp-polyfill-dom-rect',
@@ -108,22 +106,21 @@
);
$vendor_scripts_versions = array(
- 'react' => '18.3.1',
- 'react-dom' => '18.3.1',
+ 'react' => '18.3.1.1', // Final .1 due to switch to UMD build, can be removed in the next update.
+ 'react-dom' => '18.3.1.1', // Final .1 due to switch to UMD build, can be removed in the next update.
'react-jsx-runtime' => '18.3.1',
- 'regenerator-runtime' => '0.14.0',
- 'moment' => '2.29.4',
+ 'regenerator-runtime' => '0.14.1',
+ 'moment' => '2.30.1',
'lodash' => '4.17.21',
- 'wp-polyfill-fetch' => '3.6.17',
+ 'wp-polyfill-fetch' => '3.6.20',
'wp-polyfill-formdata' => '4.0.10',
'wp-polyfill-node-contains' => '4.8.0',
'wp-polyfill-url' => '3.6.4',
'wp-polyfill-dom-rect' => '4.8.0',
'wp-polyfill-element-closest' => '3.0.2',
'wp-polyfill-object-fit' => '2.3.5',
- 'wp-polyfill-inert' => '3.1.2',
+ 'wp-polyfill-inert' => '3.1.3',
'wp-polyfill' => '3.15.0',
- 'wp-polyfill-importmap' => '1.8.2',
);
foreach ( $vendor_scripts as $handle => $dependencies ) {
@@ -613,7 +610,7 @@
}
if ( ! empty( $editor_settings['tinymce'] ) && is_array( $editor_settings['tinymce'] ) ) {
- array_merge( $tinymce_settings, $editor_settings['tinymce'] );
+ $tinymce_settings = array_merge( $tinymce_settings, $editor_settings['tinymce'] );
}
/** This filter is documented in wp-includes/class-wp-editor.php */
@@ -684,7 +681,13 @@
static $suffixes;
if ( null === $suffixes ) {
- // Include an unmodified $wp_version.
+ /*
+ * Include an unmodified $wp_version.
+ *
+ * Note: wp_get_wp_version() is not used here, as this file can be included
+ * via wp-admin/load-scripts.php or wp-admin/load-styles.php, in which case
+ * wp-includes/functions.php is not loaded.
+ */
require ABSPATH . WPINC . '/version.php';
/*
@@ -751,9 +754,31 @@
)
);
- $scripts->add( 'common', "/wp-admin/js/common$suffix.js", array( 'jquery', 'hoverIntent', 'utils' ), false, 1 );
+ $scripts->add( 'common', "/wp-admin/js/common$suffix.js", array( 'jquery', 'hoverIntent', 'utils', 'wp-a11y' ), false, 1 );
$scripts->set_translations( 'common' );
+ $bulk_action_observer_ids = array(
+ 'bulk_action' => 'action',
+ 'changeit' => 'new_role',
+ );
+ did_action( 'init' ) && $scripts->localize(
+ 'common',
+ 'bulkActionObserverIds',
+ /**
+ * Filters the array of field name attributes for bulk actions.
+ *
+ * @since 6.8.1
+ *
+ * @param array $bulk_action_observer_ids {
+ * An array of field name attributes for bulk actions.
+ *
+ * @type string $bulk_action The bulk action field name. Default 'action'.
+ * @type string $changeit The new role field name. Default 'new_role'.
+ * }
+ */
+ apply_filters( 'bulk_action_observer_ids', $bulk_action_observer_ids )
+ );
+
$scripts->add( 'wp-sanitize', "/wp-includes/js/wp-sanitize$suffix.js", array(), false, 1 );
$scripts->add( 'sack', "/wp-includes/js/tw-sack$suffix.js", array(), '1.6.1', 1 );
@@ -807,7 +832,7 @@
'wpAjax',
array(
'noPerm' => __( 'Sorry, you are not allowed to do that.' ),
- 'broken' => __( 'Something went wrong.' ),
+ 'broken' => __( 'An error occurred while processing your request. Please try again later.' ),
)
);
@@ -935,7 +960,7 @@
$scripts->add( 'jquery-form', "/wp-includes/js/jquery/jquery.form$suffix.js", array( 'jquery' ), '4.3.0', 1 );
// jQuery plugins.
- $scripts->add( 'jquery-color', '/wp-includes/js/jquery/jquery.color.min.js', array( 'jquery' ), '2.2.0', 1 );
+ $scripts->add( 'jquery-color', '/wp-includes/js/jquery/jquery.color.min.js', array( 'jquery' ), '3.0.0', 1 );
$scripts->add( 'schedule', '/wp-includes/js/jquery/jquery.schedule.js', array( 'jquery' ), '20m', 1 );
$scripts->add( 'jquery-query', '/wp-includes/js/jquery/jquery.query.js', array( 'jquery' ), '2.2.3', 1 );
$scripts->add( 'jquery-serialize-object', '/wp-includes/js/jquery/jquery.serialize-object.js', array( 'jquery' ), '0.2-wp', 1 );
@@ -980,7 +1005,7 @@
/* translators: %s: File name. */
'file_exceeds_size_limit' => __( '%s exceeds the maximum upload size for this site.' ),
'zero_byte_file' => __( 'This file is empty. Please try another.' ),
- 'invalid_filetype' => __( 'Sorry, you are not allowed to upload this file type.' ),
+ 'invalid_filetype' => __( 'This file cannot be processed by the web server.' ),
'not_an_image' => __( 'This file is not an image. Please try another.' ),
'image_memory_exceeded' => __( 'Memory exceeded. Please try another smaller file.' ),
'image_dimensions_exceeded' => __( 'This is larger than the maximum size. Please try another.' ),
@@ -1004,11 +1029,11 @@
/* translators: %s: File name. */
'error_uploading' => __( '“%s” has failed to upload.' ),
'unsupported_image' => __( 'This image cannot be displayed in a web browser. For best results convert it to JPEG before uploading.' ),
- 'noneditable_image' => __( 'This image cannot be processed by the web server. Convert it to JPEG or PNG before uploading.' ),
+ 'noneditable_image' => __( 'The web server cannot generate responsive image sizes for this image. Convert it to JPEG or PNG before uploading.' ),
'file_url_copied' => __( 'The file URL has been copied to your clipboard' ),
);
- $scripts->add( 'moxiejs', "/wp-includes/js/plupload/moxie$suffix.js", array(), '1.3.5' );
+ $scripts->add( 'moxiejs', "/wp-includes/js/plupload/moxie$suffix.js", array(), '1.3.5.1' );
$scripts->add( 'plupload', "/wp-includes/js/plupload/plupload$suffix.js", array( 'moxiejs' ), '2.1.9' );
// Back compat handles:
foreach ( array( 'all', 'html5', 'flash', 'silverlight', 'html4' ) as $handle ) {
@@ -1033,8 +1058,8 @@
$scripts->add( 'json2', "/wp-includes/js/json2$suffix.js", array(), '2015-05-03' );
did_action( 'init' ) && $scripts->add_data( 'json2', 'conditional', 'lt IE 8' );
- $scripts->add( 'underscore', "/wp-includes/js/underscore$dev_suffix.js", array(), '1.13.4', 1 );
- $scripts->add( 'backbone', "/wp-includes/js/backbone$dev_suffix.js", array( 'underscore', 'jquery' ), '1.5.0', 1 );
+ $scripts->add( 'underscore', "/wp-includes/js/underscore$dev_suffix.js", array(), '1.13.7', 1 );
+ $scripts->add( 'backbone', "/wp-includes/js/backbone$dev_suffix.js", array( 'underscore', 'jquery' ), '1.6.0', 1 );
$scripts->add( 'wp-util', "/wp-includes/js/wp-util$suffix.js", array( 'underscore', 'jquery' ), false, 1 );
did_action( 'init' ) && $scripts->localize(
@@ -1214,7 +1239,7 @@
$scripts->add( 'auth-app', "/wp-admin/js/auth-app$suffix.js", array( 'jquery', 'wp-api-request', 'wp-i18n', 'wp-hooks' ), false, 1 );
$scripts->set_translations( 'auth-app' );
- $scripts->add( 'user-profile', "/wp-admin/js/user-profile$suffix.js", array( 'jquery', 'password-strength-meter', 'wp-util' ), false, 1 );
+ $scripts->add( 'user-profile', "/wp-admin/js/user-profile$suffix.js", array( 'clipboard', 'jquery', 'password-strength-meter', 'wp-util', 'wp-a11y' ), false, 1 );
$scripts->set_translations( 'user-profile' );
$user_id = isset( $_GET['user_id'] ) ? (int) $_GET['user_id'] : 0;
did_action( 'init' ) && $scripts->localize(
@@ -1289,7 +1314,7 @@
'close' => __( 'Close' ),
'action' => __( 'Action' ),
'discardChanges' => __( 'Discard changes' ),
- 'cheatin' => __( 'Something went wrong.' ),
+ 'cheatin' => __( 'An error occurred. Please try again later.' ),
'notAllowedHeading' => __( 'You need a higher level of permission.' ),
'notAllowed' => __( 'Sorry, you are not allowed to customize this site.' ),
'previewIframeTitle' => __( 'Site Preview' ),
@@ -1392,7 +1417,7 @@
$scripts->add( 'admin-tags', "/wp-admin/js/tags$suffix.js", array( 'jquery', 'wp-ajax-response' ), false, 1 );
$scripts->set_translations( 'admin-tags' );
- $scripts->add( 'admin-comments', "/wp-admin/js/edit-comments$suffix.js", array( 'wp-lists', 'quicktags', 'jquery-query' ), false, 1 );
+ $scripts->add( 'admin-comments', "/wp-admin/js/edit-comments$suffix.js", array( 'wp-lists', 'quicktags', 'jquery-query', 'wp-a11y' ), false, 1 );
$scripts->set_translations( 'admin-comments' );
did_action( 'init' ) && $scripts->localize(
'admin-comments',
@@ -1522,7 +1547,13 @@
function wp_default_styles( $styles ) {
global $editor_styles;
- // Include an unmodified $wp_version.
+ /*
+ * Include an unmodified $wp_version.
+ *
+ * Note: wp_get_wp_version() is not used here, as this file can be included
+ * via wp-admin/load-scripts.php or wp-admin/load-styles.php, in which case
+ * wp-includes/functions.php is not loaded.
+ */
require ABSPATH . WPINC . '/version.php';
if ( ! defined( 'SCRIPT_DEBUG' ) ) {
@@ -1618,6 +1649,7 @@
$styles->add( 'wp-pointer', "/wp-includes/css/wp-pointer$suffix.css", array( 'dashicons' ) );
$styles->add( 'customize-preview', "/wp-includes/css/customize-preview$suffix.css", array( 'dashicons' ) );
$styles->add( 'wp-embed-template-ie', "/wp-includes/css/wp-embed-template-ie$suffix.css" );
+ $styles->add( 'wp-empty-template-alert', "/wp-includes/css/wp-empty-template-alert$suffix.css" );
$styles->add_data( 'wp-embed-template-ie', 'conditional', 'lte IE 8' );
// External libraries and friends.
@@ -1652,6 +1684,10 @@
$styles->add( 'wp-block-library-theme', "/$block_library_theme_path" );
$styles->add_data( 'wp-block-library-theme', 'path', ABSPATH . $block_library_theme_path );
+ $classic_theme_styles_path = WPINC . "/css/classic-themes$suffix.css";
+ $styles->add( 'classic-theme-styles', "/$classic_theme_styles_path" );
+ $styles->add_data( 'classic-theme-styles', 'path', ABSPATH . $classic_theme_styles_path );
+
$styles->add(
'wp-reset-editor-styles',
"/wp-includes/css/dist/block-library/reset$suffix.css",
@@ -1670,18 +1706,16 @@
array( 'wp-components' )
);
+ // Only add CONTENT styles here that should be enqueued in the iframe!
$wp_edit_blocks_dependencies = array(
'wp-components',
- 'wp-editor',
/*
* This needs to be added before the block library styles,
* The block library styles override the "reset" styles.
*/
'wp-reset-editor-styles',
'wp-block-library',
- 'wp-reusable-blocks',
'wp-block-editor-content',
- 'wp-patterns',
);
// Only load the default layout and margin styles for themes without theme.json file.
@@ -1740,24 +1774,25 @@
'edit-widgets' => array(
'wp-widgets',
'wp-block-editor',
+ 'wp-editor',
'wp-edit-blocks',
'wp-block-library',
- 'wp-reusable-blocks',
'wp-patterns',
'wp-preferences',
),
'customize-widgets' => array(
'wp-widgets',
'wp-block-editor',
+ 'wp-editor',
'wp-edit-blocks',
'wp-block-library',
- 'wp-reusable-blocks',
'wp-patterns',
'wp-preferences',
),
'edit-site' => array(
'wp-components',
'wp-block-editor',
+ 'wp-editor',
'wp-edit-blocks',
'wp-commands',
'wp-preferences',
@@ -1800,6 +1835,7 @@
'customize-preview',
'login',
'site-health',
+ 'wp-empty-template-alert',
// Includes CSS.
'buttons',
'admin-bar',
@@ -2085,7 +2121,7 @@
*
* @global bool $concatenate_scripts
*
- * @return array
+ * @return string[] Handles of the scripts that were printed.
*/
function print_head_scripts() {
global $concatenate_scripts;
@@ -2124,7 +2160,7 @@
* @global WP_Scripts $wp_scripts
* @global bool $concatenate_scripts
*
- * @return array
+ * @return string[] Handles of the scripts that were printed.
*/
function print_footer_scripts() {
global $wp_scripts, $concatenate_scripts;
@@ -2205,7 +2241,7 @@
*
* @global WP_Scripts $wp_scripts
*
- * @return array
+ * @return string[] Handles of the scripts that were printed.
*/
function wp_print_head_scripts() {
global $wp_scripts;
@@ -2270,7 +2306,7 @@
*
* @global bool $concatenate_scripts
*
- * @return array
+ * @return string[] Handles of the styles that were printed.
*/
function print_admin_styles() {
global $concatenate_scripts;
@@ -2477,20 +2513,21 @@
* @since 5.8.0
*/
function wp_enqueue_global_styles() {
- $separate_assets = wp_should_load_separate_core_block_assets();
+ $assets_on_demand = wp_should_load_block_assets_on_demand();
$is_block_theme = wp_is_block_theme();
$is_classic_theme = ! $is_block_theme;
/*
- * Global styles should be printed in the head when loading all styles combined.
- * The footer should only be used to print global styles for classic themes with separate core assets enabled.
+ * Global styles should be printed in the head for block themes, or for classic themes when loading assets on
+ * demand is disabled, which is the default.
+ * The footer should only be used for classic themes when loading assets on demand is enabled.
*
- * See https://core.trac.wordpress.org/ticket/53494.
+ * See https://core.trac.wordpress.org/ticket/53494 and https://core.trac.wordpress.org/ticket/61965.
*/
if (
( $is_block_theme && doing_action( 'wp_footer' ) ) ||
- ( $is_classic_theme && doing_action( 'wp_footer' ) && ! $separate_assets ) ||
- ( $is_classic_theme && doing_action( 'wp_enqueue_scripts' ) && $separate_assets )
+ ( $is_classic_theme && doing_action( 'wp_footer' ) && ! $assets_on_demand ) ||
+ ( $is_classic_theme && doing_action( 'wp_enqueue_scripts' ) && $assets_on_demand )
) {
return;
}
@@ -2504,6 +2541,20 @@
$stylesheet = wp_get_global_stylesheet();
+ if ( $is_block_theme ) {
+ /*
+ * Dequeue the Customizer's custom CSS
+ * and add it before the global styles custom CSS.
+ */
+ remove_action( 'wp_head', 'wp_custom_css_cb', 101 );
+ // Get the custom CSS from the Customizer and add it to the global stylesheet.
+ $custom_css = wp_get_custom_css();
+ $stylesheet .= $custom_css;
+
+ // Add the global styles custom CSS at the end.
+ $stylesheet .= wp_get_global_stylesheet( array( 'custom-css' ) );
+ }
+
if ( empty( $stylesheet ) ) {
return;
}
@@ -2517,27 +2568,6 @@
}
/**
- * Enqueues the global styles custom css defined via theme.json.
- *
- * @since 6.2.0
- */
-function wp_enqueue_global_styles_custom_css() {
- if ( ! wp_is_block_theme() ) {
- return;
- }
-
- // Don't enqueue Customizer's custom CSS separately.
- remove_action( 'wp_head', 'wp_custom_css_cb', 101 );
-
- $custom_css = wp_get_custom_css();
- $custom_css .= wp_get_global_styles_custom_css();
-
- if ( ! empty( $custom_css ) ) {
- wp_add_inline_style( 'global-styles', $custom_css );
- }
-}
-
-/**
* Checks if the editor scripts and styles for all registered block types
* should be enqueued on the current screen.
*
@@ -2564,25 +2594,22 @@
}
/**
- * Checks whether separate styles should be loaded for core blocks on-render.
+ * Checks whether separate styles should be loaded for core blocks.
*
- * When this function returns true, other functions ensure that core blocks
- * only load their assets on-render, and each block loads its own, individual
- * assets. Third-party blocks only load their assets when rendered.
+ * When this function returns true, other functions ensure that core blocks use their own separate stylesheets.
+ * When this function returns false, all core blocks will use the single combined 'wp-block-library' stylesheet.
*
- * When this function returns false, all core block assets are loaded regardless
- * of whether they are rendered in a page or not, because they are all part of
- * the `block-library/style.css` file. Assets for third-party blocks are always
- * enqueued regardless of whether they are rendered or not.
+ * As a side effect, the return value will by default result in block assets to be loaded on demand, via the
+ * {@see wp_should_load_block_assets_on_demand()} function. This behavior can be separately altered via that function.
*
* This only affects front end and not the block editor screens.
*
+ * @since 5.8.0
+ * @see @see wp_should_load_block_assets_on_demand()
* @see wp_enqueue_registered_block_scripts_and_styles()
* @see register_block_style_handle()
*
- * @since 5.8.0
- *
- * @return bool Whether separate assets will be loaded.
+ * @return bool Whether separate core block assets will be loaded.
*/
function wp_should_load_separate_core_block_assets() {
if ( is_admin() || is_feed() || wp_is_rest_endpoint() ) {
@@ -2604,6 +2631,50 @@
}
/**
+ * Checks whether block styles should be loaded only on-render.
+ *
+ * When this function returns true, other functions ensure that blocks only load their assets on-render.
+ * When this function returns false, all block assets are loaded regardless of whether they are rendered in a page.
+ *
+ * The default return value depends on the result of {@see wp_should_load_separate_core_block_assets()}, which controls
+ * whether Core block stylesheets should be loaded separately or via a combined 'wp-block-library' stylesheet.
+ *
+ * This only affects front end and not the block editor screens.
+ *
+ * @since 6.8.0
+ * @see wp_should_load_separate_core_block_assets()
+ *
+ * @return bool Whether to load block assets only when they are rendered.
+ */
+function wp_should_load_block_assets_on_demand() {
+ if ( is_admin() || is_feed() || wp_is_rest_endpoint() ) {
+ return false;
+ }
+
+ /*
+ * For backward compatibility, the default return value for this function is based on the return value of
+ * `wp_should_load_separate_core_block_assets()`. Initially, this function used to control both of these concerns.
+ */
+ $load_assets_on_demand = wp_should_load_separate_core_block_assets();
+
+ /**
+ * Filters whether block styles should be loaded on demand.
+ *
+ * Returning false loads all block assets, regardless of whether they are rendered in a page or not.
+ * Returning true loads block assets only when they are rendered.
+ *
+ * The default value of the filter depends on the result of {@see wp_should_load_separate_core_block_assets()},
+ * which controls whether Core block stylesheets should be loaded separately or via a combined 'wp-block-library'
+ * stylesheet.
+ *
+ * @since 6.8.0
+ *
+ * @param bool $load_assets_on_demand Whether to load block assets only when they are rendered.
+ */
+ return apply_filters( 'should_load_block_assets_on_demand', $load_assets_on_demand );
+}
+
+/**
* Enqueues registered block scripts and styles, depending on current rendered
* context (only enqueuing editor scripts while in context of the editor).
*
@@ -2614,13 +2685,21 @@
function wp_enqueue_registered_block_scripts_and_styles() {
global $current_screen;
- if ( wp_should_load_separate_core_block_assets() ) {
+ if ( wp_should_load_block_assets_on_demand() ) {
return;
}
$load_editor_scripts_and_styles = is_admin() && wp_should_load_block_editor_scripts_and_styles();
$block_registry = WP_Block_Type_Registry::get_instance();
+
+ /*
+ * Block styles are only enqueued if they're registered. For core blocks, this is only the case if
+ * `wp_should_load_separate_core_block_assets()` returns true. Otherwise they use the single combined
+ * 'wp-block-library` stylesheet. See also `register_core_block_style_handles()`.
+ * Since `wp_enqueue_style()` does not trigger warnings if the style is not registered, it is okay to not cater for
+ * this behavior here and simply call `wp_enqueue_style()` unconditionally.
+ */
foreach ( $block_registry->get_all_registered() as $block_name => $block_type ) {
// Front-end and editor styles.
foreach ( $block_type->style_handles as $style_handle ) {
@@ -2662,8 +2741,8 @@
foreach ( $styles as $style_properties ) {
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() ) {
+ // If the site loads block styles on demand, enqueue the stylesheet on render.
+ if ( wp_should_load_block_assets_on_demand() ) {
add_filter(
'render_block',
static function ( $html, $block ) use ( $block_name, $style_properties ) {
@@ -2684,8 +2763,8 @@
// 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() ) {
+ // If the site loads block styles on demand, check if the block has a stylesheet registered.
+ if ( wp_should_load_block_assets_on_demand() ) {
$block_stylesheet_handle = generate_block_asset_handle( $block_name, 'style' );
if ( isset( $wp_styles->registered[ $block_stylesheet_handle ] ) ) {
@@ -3052,7 +3131,7 @@
if (
str_starts_with( $url, 'http:' ) ||
str_starts_with( $url, 'https:' ) ||
- str_starts_with( $url, '//' ) ||
+ str_starts_with( $url, '/' ) ||
str_starts_with( $url, '#' ) ||
str_starts_with( $url, 'data:' )
) {
@@ -3184,7 +3263,7 @@
/**
* Enqueues a stylesheet for a specific block.
*
- * If the theme has opted-in to separate-styles loading,
+ * If the theme has opted-in to load block styles on demand,
* then the stylesheet will be enqueued on-render,
* otherwise when the block inits.
*
@@ -3252,7 +3331,7 @@
};
$hook = did_action( 'wp_enqueue_scripts' ) ? 'wp_footer' : 'wp_enqueue_scripts';
- if ( wp_should_load_separate_core_block_assets() ) {
+ if ( wp_should_load_block_assets_on_demand() ) {
/**
* Callback function to register and enqueue styles.
*
@@ -3298,55 +3377,19 @@
/**
* Loads classic theme styles on classic themes in the frontend.
*
- * This is needed for backwards compatibility for button blocks specifically.
+ * This is used for backwards compatibility for Button and File blocks specifically.
*
* @since 6.1.0
+ * @since 6.2.0 Added File block styles.
+ * @since 6.8.0 Moved stylesheet registration outside of this function.
*/
function wp_enqueue_classic_theme_styles() {
if ( ! wp_theme_has_theme_json() ) {
- $suffix = wp_scripts_get_suffix();
- wp_register_style( 'classic-theme-styles', '/' . WPINC . "/css/classic-themes$suffix.css" );
- wp_style_add_data( 'classic-theme-styles', 'path', ABSPATH . WPINC . "/css/classic-themes$suffix.css" );
wp_enqueue_style( 'classic-theme-styles' );
}
}
/**
- * Loads classic theme styles on classic themes in the editor.
- *
- * This is needed for backwards compatibility for button blocks specifically.
- *
- * @since 6.1.0
- *
- * @param array $editor_settings The array of editor settings.
- * @return array A filtered array of editor settings.
- */
-function wp_add_editor_classic_theme_styles( $editor_settings ) {
- if ( wp_theme_has_theme_json() ) {
- return $editor_settings;
- }
-
- $suffix = wp_scripts_get_suffix();
- $classic_theme_styles = ABSPATH . WPINC . "/css/classic-themes$suffix.css";
-
- /*
- * This follows the pattern of get_block_editor_theme_styles,
- * but we can't use get_block_editor_theme_styles directly as it
- * only handles external files or theme files.
- */
- $classic_theme_styles_settings = array(
- 'css' => file_get_contents( $classic_theme_styles ),
- '__unstableType' => 'core',
- 'isGlobalStyles' => false,
- );
-
- // Add these settings to the start of the array so that themes can override them.
- array_unshift( $editor_settings['styles'], $classic_theme_styles_settings );
-
- return $editor_settings;
-}
-
-/**
* Removes leading and trailing _empty_ script tags.
*
* This is a helper meant to be used for literal script tag construction