WordPress Version: 6.3
/**
* Checks whether a theme or its parent has a theme.json file.
*
* @since 6.2.0
*
* @return bool Returns true if theme or its parent has a theme.json file, false otherwise.
*/
function wp_theme_has_theme_json()
{
static $theme_has_support = array();
$stylesheet = get_stylesheet();
if (isset($theme_has_support[$stylesheet]) && !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];
}