Make WordPress Core

Changeset 56073


Ignore:
Timestamp:
06/27/2023 05:10:28 PM (13 months ago)
Author:
spacedmonkey
Message:

Themes: Use get_theme_file_path() in wp_theme_has_theme_json().

Ensure that all places where theme.json is included, use get_theme_file_path or WP_Theme->get_file_path, so that the path is run through theme_file_path filter. This change also means that the method get_file_path_from_theme can be deprecated, as it is no longer used in core.

Props flixos90, spacedmonkey, costdev, johnbillion, oglekler, hellofromtonya, mukesh27, audrasjb, oandregal.
Fixes #57629.

Location:
trunk/src/wp-includes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-theme-json-resolver.php

    r55996 r56073  
    239239
    240240        if ( null === static::$theme || ! static::has_same_registered_blocks( 'theme' ) ) {
    241             $theme_json_file = static::get_file_path_from_theme( 'theme.json' );
    242241            $wp_theme        = wp_get_theme();
    243             if ( '' !== $theme_json_file ) {
     242            $theme_json_file = $wp_theme->get_file_path( 'theme.json' );
     243            if ( is_readable( $theme_json_file ) ) {
    244244                $theme_json_data = static::read_json_file( $theme_json_file );
    245245                $theme_json_data = static::translate( $theme_json_data, $wp_theme->get( 'TextDomain' ) );
     
    261261            if ( $wp_theme->parent() ) {
    262262                // Get parent theme.json.
    263                 $parent_theme_json_file = static::get_file_path_from_theme( 'theme.json', true );
    264                 if ( '' !== $parent_theme_json_file ) {
     263                $parent_theme_json_file = $wp_theme->parent()->get_file_path( 'theme.json' );
     264                if ( $theme_json_file !== $parent_theme_json_file && is_readable( $parent_theme_json_file ) ) {
    265265                    $parent_theme_json_data = static::read_json_file( $parent_theme_json_file );
    266266                    $parent_theme_json_data = static::translate( $parent_theme_json_data, $wp_theme->parent()->get( 'TextDomain' ) );
  • trunk/src/wp-includes/global-styles-and-settings.php

    r56058 r56073  
    409409
    410410    // Does the theme have its own theme.json?
    411     $theme_has_support = is_readable( get_stylesheet_directory() . '/theme.json' );
    412 
    413     // Look up the parent if the child does not have a theme.json.
    414     if ( ! $theme_has_support ) {
    415         $theme_has_support = is_readable( get_template_directory() . '/theme.json' );
    416     }
     411    $theme_has_support = is_readable( get_theme_file_path( 'theme.json' ) );
    417412
    418413    return $theme_has_support;
Note: See TracChangeset for help on using the changeset viewer.