Themes: Add static cache variable to wp_theme_has_theme_json().
For performance, a static variable is added to `wp_theme_has_theme_json()` to cache the boolean result of determining if a theme (or its parent) has a `theme.json` file. This cache avoids the overhead of calling `get_stylesheet_directory()` and `get_template_directory()` each time `wp_theme_has_theme_json()` is invoked. The cache is lean, non-persistent, and encapsulated within the function (i.e. function scope and not available externally). The cache is ignored when: * `WP_DEBUG` is on to avoid interrupting theme developer's workflow and for extender automated test suites. * `WP_RUN_CORE_TESTS` is on to ensure each Core test exercises the checking code. Follow-up to [55092], [55086]. Props oandregal, azaozz, costdev, dmsnell, flixos90, hellofromTonya, Otto42, spacedmonkey. Fixes #56975. Built from https://develop.svn.wordpress.org/trunk@55138 git-svn-id: http://core.svn.wordpress.org/trunk@54671 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
9fe4e0b6f4
commit
652f2244c6
|
@ -264,6 +264,26 @@ function wp_add_global_styles_for_blocks() {
|
|||
* @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 = null;
|
||||
|
||||
if (
|
||||
null !== $theme_has_support &&
|
||||
/*
|
||||
* Ignore static cache when `WP_DEBUG` is enabled. Why? To avoid interfering with
|
||||
* the theme developer's workflow.
|
||||
*
|
||||
* @todo Replace `WP_DEBUG` once an "in development mode" check is available in Core.
|
||||
*/
|
||||
! WP_DEBUG &&
|
||||
/*
|
||||
* Ignore cache when automated test suites are running. Why? To ensure
|
||||
* the static cache is reset between each test.
|
||||
*/
|
||||
! ( defined( 'WP_RUN_CORE_TESTS' ) && WP_RUN_CORE_TESTS )
|
||||
) {
|
||||
return $theme_has_support;
|
||||
}
|
||||
|
||||
// Does the theme have its own theme.json?
|
||||
$theme_has_support = is_readable( get_stylesheet_directory() . '/theme.json' );
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
*
|
||||
* @global string $wp_version
|
||||
*/
|
||||
$wp_version = '6.2-alpha-55137';
|
||||
$wp_version = '6.2-alpha-55138';
|
||||
|
||||
/**
|
||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||
|
|
Loading…
Reference in New Issue