Make WordPress Core

Changeset 54323


Ignore:
Timestamp:
09/27/2022 07:38:40 AM (2 years ago)
Author:
gziolo
Message:

Blocks: Fix 404 error for core styles with no file

[54155] broke loading of style.css files, namely it was enqueuing style.css files that don't exist on the frontend, which lead to 404 HTTO errors. All these style.css files don't exist for core blocks as they should be registered style handlers without a file path.

Follow-up to [54155].
Props tobiasbg, nendeb55.
Fixes #56408, #56614.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/blocks.php

    r54309 r54323  
    209209
    210210    // Check whether styles should have a ".min" suffix or not.
    211     $suffix    = SCRIPT_DEBUG ? '' : '.min';
    212     $style_uri = plugins_url( $style_path, $metadata['file'] );
     211    $suffix = SCRIPT_DEBUG ? '' : '.min';
    213212    if ( $is_core_block ) {
    214213        $style_path = "style$suffix.css";
    215         $style_uri  = includes_url( 'blocks/' . str_replace( 'core/', '', $metadata['name'] ) . "/style$suffix.css" );
    216     }
    217 
     214    }
    218215    $style_path_norm = wp_normalize_path( realpath( dirname( $metadata['file'] ) . '/' . $style_path ) );
    219     $is_theme_block  = 0 === strpos( $style_path_norm, $theme_path_norm );
    220 
    221     if ( $is_theme_block ) {
    222         $style_uri = get_theme_file_uri( str_replace( $theme_path_norm, '', $style_path_norm ) );
    223     }
    224 
    225     $style_handle   = generate_block_asset_handle( $metadata['name'], $field_name, $index );
    226     $has_style_file = false !== $style_path_norm;
    227     $version        = ! $is_core_block && isset( $metadata['version'] ) ? $metadata['version'] : false;
    228     $style_uri      = $has_style_file ? $style_uri : false;
    229     $result         = wp_register_style(
     216    $has_style_file  = '' !== $style_path_norm;
     217    if ( $has_style_file ) {
     218        $style_uri      = plugins_url( $style_path, $metadata['file'] );
     219        $is_theme_block = str_starts_with( $style_path_norm, $theme_path_norm );
     220        if ( $is_theme_block ) {
     221            $style_uri = get_theme_file_uri( str_replace( $theme_path_norm, '', $style_path_norm ) );
     222        } elseif ( $is_core_block ) {
     223            $style_uri  = includes_url( 'blocks/' . str_replace( 'core/', '', $metadata['name'] ) . "/style$suffix.css" );
     224        }
     225    } else {
     226        $style_uri = false;
     227    }
     228
     229    $style_handle = generate_block_asset_handle( $metadata['name'], $field_name, $index );
     230    $version      = ! $is_core_block && isset( $metadata['version'] ) ? $metadata['version'] : false;
     231    $result       = wp_register_style(
    230232        $style_handle,
    231233        $style_uri,
     
    233235        $version
    234236    );
    235     if ( file_exists( str_replace( '.css', '-rtl.css', $style_path_norm ) ) ) {
    236         wp_style_add_data( $style_handle, 'rtl', 'replace' );
    237     }
     237    if ( ! $result ) {
     238        return false;
     239    }
     240
    238241    if ( $has_style_file ) {
     242        if ( file_exists( str_replace( '.css', '-rtl.css', $style_path_norm ) ) ) {
     243            wp_style_add_data( $style_handle, 'rtl', 'replace' );
     244        }
     245
    239246        wp_style_add_data( $style_handle, 'path', $style_path_norm );
    240     }
    241 
    242     $rtl_file = str_replace( "$suffix.css", "-rtl$suffix.css", $style_path_norm );
    243     if ( is_rtl() && file_exists( $rtl_file ) ) {
    244         wp_style_add_data( $style_handle, 'path', $rtl_file );
    245     }
    246 
    247     return $result ? $style_handle : false;
     247
     248        $rtl_file = str_replace( "{$suffix}.css", "-rtl{$suffix}.css", $style_path_norm );
     249        if ( is_rtl() && file_exists( $rtl_file ) ) {
     250            wp_style_add_data( $style_handle, 'path', $rtl_file );
     251        }
     252    }
     253
     254    return $style_handle;
    248255}
    249256
Note: See TracChangeset for help on using the changeset viewer.