Checks whether a theme or its parent has a theme.json file.
Source
function wp_theme_has_theme_json() {
static $theme_has_support = array();
$stylesheet = get_stylesheet();
if (
isset( $theme_has_support[ $stylesheet ] ) &&
/*
* Ignore static cache when the development mode is set to 'theme', to avoid interfering with
* the theme developer's workflow.
*/
! wp_is_development_mode( 'theme' )
) {
return $theme_has_support[ $stylesheet ];
}
$stylesheet_directory = get_stylesheet_directory();
$template_directory = get_template_directory();
// This is the same as get_theme_file_path(), which isn't available in load-styles.php context
if ( $stylesheet_directory !== $template_directory && file_exists( $stylesheet_directory . '/theme.json' ) ) {
$path = $stylesheet_directory . '/theme.json';
} else {
$path = $template_directory . '/theme.json';
}
/** This filter is documented in wp-includes/link-template.php */
$path = apply_filters( 'theme_file_path', $path, 'theme.json' );
$theme_has_support[ $stylesheet ] = file_exists( $path );
return $theme_has_support[ $stylesheet ];
}
Hooks
- apply_filters( ‘theme_file_path’,
string $path ,string $file ) Filters the path to a file in the theme.
Changelog
Version | Description |
---|---|
6.2.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.