wordpress-develop/tests/phpunit/data/themedir1
Tonya Mork 6a9e92dc76 Themes: Introduce wp_theme_has_theme_json() for public consumption.
Adds `wp_theme_has_theme_json()` for public consumption, to replace the private internal Core-only `WP_Theme_JSON_Resolver::theme_has_support()` method. This new global function checks if a theme or its parent has a `theme.json` file.

For performance, results are cached as an integer `1` or `0` in the `'theme_json'` group with `'wp_theme_has_theme_json'` key. This is a non-persistent cache. Why? To make the derived data from `theme.json` is always fresh from the potential modifications done via hooks that can use dynamic data (modify the stylesheet depending on some option, settings depending on user permissions, etc.).

Also adds a new public function `wp_clean_theme_json_cache()` to clear the cache on `'switch_theme'` and `start_previewing_theme'`.

References:
* [https://github.com/WordPress/gutenberg/pull/45168 Gutenberg PR 45168] Add `wp_theme_has_theme_json` as a public API to know whether a theme has a `theme.json`.
* [https://github.com/WordPress/gutenberg/pull/45380 Gutenberg PR 45380] Deprecate `WP_Theme_JSON_Resolver:theme_has_support()`.
* [https://github.com/WordPress/gutenberg/pull/46150 Gutenberg PR 46150] Make `theme.json` object caches non-persistent.
* [https://github.com/WordPress/gutenberg/pull/45979 Gutenberg PR 45979] Don't check if constants set by `wp_initial_constants()` are defined.
* [https://github.com/WordPress/gutenberg/pull/45950 Gutenberg PR 45950] Cleaner logic in `wp_theme_has_theme_json`.

Follow-up to [54493], [53282], [52744], [52049], [50959].

Props oandregal, afragen, alexstine, aristath, azaozz, costdev, flixos90, hellofromTonya, mamaduka, mcsf, ocean90, spacedmonkey.
Fixes #56975.

git-svn-id: https://develop.svn.wordpress.org/trunk@55086 602fd350-edb4-49c9-b593-d223f7449a82
2023-01-18 11:38:16 +00:00
..
block_theme-[0.4.0] REST API: Support . in theme directory names in WP_REST_Global_Styles_Controller, WP_REST_Templates_Controller, and WP_REST_Themes_Controller. 2021-12-21 04:12:06 +00:00
block-theme Editor: Ensure global styles are rendered for third-party blocks. 2022-10-27 15:39:20 +00:00
block-theme-child Themes: Update the base folders for templates and template parts in block themes. 2021-11-25 10:57:19 +00:00
block-theme-child-no-theme-json Themes: Introduce wp_theme_has_theme_json() for public consumption. 2023-01-18 11:38:16 +00:00
block-theme-child-with-fluid-typography Editor: Add test data for Fluid Typography. 2022-10-11 19:50:46 +00:00
block-theme-deprecated-path Themes: Accept valid block themes. 2022-05-20 00:47:45 +00:00
broken-theme Tests: Add a placeholder file to the broken-theme directory so it isn't removed when synced to git. 2014-01-06 18:26:07 +00:00
camelCase Code Modernization: Replace dirname( __FILE__ ) calls with __DIR__ magic constant. 2020-02-06 06:31:22 +00:00
child-parent-itself Themes: Report theme as broken that sets itself as its parent. 2017-09-26 08:53:20 +00:00
custom-internationalized-theme I18N: Introduce WP_Textdomain_Registry to store text domains and their language directory paths. 2022-08-11 12:37:05 +00:00
default Themes: Allow template loading functions to pass additional arguments to the template via the $args parameter. 2020-07-07 11:00:21 +00:00
default-child-no-theme-json Themes: Introduce wp_theme_has_theme_json() for public consumption. 2023-01-18 11:38:16 +00:00
empty-fontface-theme Themes: Add internal-only theme.json's webfonts handler (stopgap). 2022-04-26 14:46:37 +00:00
internationalized-theme I18N: Remove the requirement to call load_plugin_textdomain() / load_theme_textdomain(). 2016-05-10 20:04:52 +00:00
page-templates Docs: Improve inline comments per the documentation standards. 2020-01-29 00:43:23 +00:00
page-templates-child Themes: Add files missed in [41975]. 2017-10-23 20:22:44 +00:00
rest-api REST API: Add additional fields to the themes controller. 2020-06-07 06:44:08 +00:00
sandbox Code Modernization: Replace dirname( __FILE__ ) calls with __DIR__ magic constant. 2020-02-06 06:31:22 +00:00
stylesheetonly General: Ensure svn:eol-style is consistently set for all recently added files. 2021-06-27 12:44:45 +00:00
subdir REST API: Support . in theme directory names in WP_REST_Global_Styles_Controller, WP_REST_Templates_Controller, and WP_REST_Themes_Controller. 2021-12-21 04:12:06 +00:00
theme1 Code Modernization: Replace dirname( __FILE__ ) calls with __DIR__ magic constant. 2020-02-06 06:31:22 +00:00
theme1-dupe Code Modernization: Replace dirname( __FILE__ ) calls with __DIR__ magic constant. 2020-02-06 06:31:22 +00:00
update-uri-theme Themes: Add support for Update URI header. 2022-08-23 17:46:46 +00:00
webfonts-theme Themes: Add internal-only theme.json's webfonts handler (stopgap). 2022-04-26 14:46:37 +00:00