H69UNtblNBNpha2dtB1Odn8qYp1Qk5NK2gi7yfceofo9N
e:
/
home
/
ajudasindico
/
Web
/
wp-includes
/
Nama File / Folder
Size
Action
ID3
--
NONE
IXR
--
NONE
PHPMailer
--
NONE
Requests
--
NONE
SimplePie
--
NONE
Text
--
NONE
assets
--
NONE
block-patterns
--
NONE
block-supports
--
NONE
blocks
--
NONE
certificates
--
NONE
css
--
NONE
customize
--
NONE
fonts
--
NONE
images
--
NONE
js
--
NONE
php-compat
--
NONE
pomo
--
NONE
random_compat
--
NONE
rest-api
--
NONE
sitemaps
--
NONE
sodium_compat
--
NONE
theme-compat
--
NONE
widgets
--
NONE
admin-bar.php
32.69KB
Hapus
Edit
Rename
atomlib.php
11.668KB
Hapus
Edit
Rename
author-template.php
16.631KB
Hapus
Edit
Rename
block-editor.php
18.371KB
Hapus
Edit
Rename
block-i18n.json
0.309KB
Hapus
Edit
Rename
block-patterns.php
4.191KB
Hapus
Edit
Rename
block-template-utils.php
29.572KB
Hapus
Edit
Rename
block-template.php
10.521KB
Hapus
Edit
Rename
blocks.php
42.222KB
Hapus
Edit
Rename
bookmark-template.php
12.598KB
Hapus
Edit
Rename
bookmark.php
14.973KB
Hapus
Edit
Rename
cache-compat.php
1.021KB
Hapus
Edit
Rename
cache.php
9.29KB
Hapus
Edit
Rename
canonical.php
32.31KB
Hapus
Edit
Rename
capabilities.php
34.884KB
Hapus
Edit
Rename
category-template.php
54.396KB
Hapus
Edit
Rename
category.php
12.414KB
Hapus
Edit
Rename
class-IXR.php
2.483KB
Hapus
Edit
Rename
class-feed.php
0.517KB
Hapus
Edit
Rename
class-http.php
0.364KB
Hapus
Edit
Rename
class-json.php
42.423KB
Hapus
Edit
Rename
class-oembed.php
0.397KB
Hapus
Edit
Rename
class-phpass.php
6.542KB
Hapus
Edit
Rename
class-phpmailer.php
0.648KB
Hapus
Edit
Rename
class-pop3.php
20.349KB
Hapus
Edit
Rename
class-requests.php
29.718KB
Hapus
Edit
Rename
class-simplepie.php
95.781KB
Hapus
Edit
Rename
class-smtp.php
0.446KB
Hapus
Edit
Rename
class-snoopy.php
36.831KB
Hapus
Edit
Rename
class-walker-category-dropdown.php
2.412KB
Hapus
Edit
Rename
class-walker-category.php
8.27KB
Hapus
Edit
Rename
class-walker-comment.php
13.878KB
Hapus
Edit
Rename
class-walker-nav-menu.php
9.13KB
Hapus
Edit
Rename
class-walker-page-dropdown.php
2.646KB
Hapus
Edit
Rename
class-walker-page.php
7.421KB
Hapus
Edit
Rename
class-wp-admin-bar.php
17.052KB
Hapus
Edit
Rename
class-wp-ajax-response.php
5.117KB
Hapus
Edit
Rename
class-wp-application-passwords.php
11.948KB
Hapus
Edit
Rename
class-wp-block-editor-context.php
0.869KB
Hapus
Edit
Rename
class-wp-block-list.php
4.612KB
Hapus
Edit
Rename
class-wp-block-parser.php
14.861KB
Hapus
Edit
Rename
class-wp-block-pattern-categories-registry.php
4.431KB
Hapus
Edit
Rename
class-wp-block-patterns-registry.php
5.796KB
Hapus
Edit
Rename
class-wp-block-styles-registry.php
4.882KB
Hapus
Edit
Rename
class-wp-block-supports.php
5.172KB
Hapus
Edit
Rename
class-wp-block-template.php
1.773KB
Hapus
Edit
Rename
class-wp-block-type-registry.php
4.533KB
Hapus
Edit
Rename
class-wp-block-type.php
9.27KB
Hapus
Edit
Rename
class-wp-block.php
7.991KB
Hapus
Edit
Rename
class-wp-comment-query.php
46.334KB
Hapus
Edit
Rename
class-wp-comment.php
9.103KB
Hapus
Edit
Rename
class-wp-customize-control.php
25.108KB
Hapus
Edit
Rename
class-wp-customize-manager.php
196.558KB
Hapus
Edit
Rename
class-wp-customize-nav-menus.php
55.448KB
Hapus
Edit
Rename
class-wp-customize-panel.php
10.192KB
Hapus
Edit
Rename
class-wp-customize-section.php
10.716KB
Hapus
Edit
Rename
class-wp-customize-setting.php
29.082KB
Hapus
Edit
Rename
class-wp-customize-widgets.php
69.517KB
Hapus
Edit
Rename
class-wp-date-query.php
34.173KB
Hapus
Edit
Rename
class-wp-dependency.php
2.452KB
Hapus
Edit
Rename
class-wp-editor.php
69.537KB
Hapus
Edit
Rename
class-wp-embed.php
15.567KB
Hapus
Edit
Rename
class-wp-error.php
7.131KB
Hapus
Edit
Rename
class-wp-fatal-error-handler.php
7.397KB
Hapus
Edit
Rename
class-wp-feed-cache-transient.php
2.5KB
Hapus
Edit
Rename
class-wp-feed-cache.php
0.947KB
Hapus
Edit
Rename
class-wp-hook.php
15.323KB
Hapus
Edit
Rename
class-wp-http-cookie.php
7.213KB
Hapus
Edit
Rename
class-wp-http-curl.php
12.099KB
Hapus
Edit
Rename
class-wp-http-encoding.php
6.507KB
Hapus
Edit
Rename
class-wp-http-ixr-client.php
3.394KB
Hapus
Edit
Rename
class-wp-http-proxy.php
5.82KB
Hapus
Edit
Rename
class-wp-http-requests-hooks.php
1.938KB
Hapus
Edit
Rename
class-wp-http-requests-response.php
4.241KB
Hapus
Edit
Rename
class-wp-http-response.php
2.882KB
Hapus
Edit
Rename
class-wp-http-streams.php
16.259KB
Hapus
Edit
Rename
class-wp-http.php
38.974KB
Hapus
Edit
Rename
class-wp-image-editor-gd.php
15.295KB
Hapus
Edit
Rename
class-wp-image-editor-imagick.php
26.329KB
Hapus
Edit
Rename
class-wp-image-editor.php
16.262KB
Hapus
Edit
Rename
class-wp-list-util.php
6.825KB
Hapus
Edit
Rename
class-wp-locale-switcher.php
4.904KB
Hapus
Edit
Rename
class-wp-locale.php
13.654KB
Hapus
Edit
Rename
class-wp-matchesmapregex.php
1.758KB
Hapus
Edit
Rename
class-wp-meta-query.php
29.471KB
Hapus
Edit
Rename
class-wp-metadata-lazyloader.php
5.227KB
Hapus
Edit
Rename
class-wp-network-query.php
18.722KB
Hapus
Edit
Rename
class-wp-network.php
12.089KB
Hapus
Edit
Rename
class-wp-object-cache.php
13.233KB
Hapus
Edit
Rename
class-wp-oembed-controller.php
6.667KB
Hapus
Edit
Rename
class-wp-oembed.php
29.982KB
Hapus
Edit
Rename
class-wp-paused-extensions-storage.php
4.808KB
Hapus
Edit
Rename
class-wp-post-type.php
20.72KB
Hapus
Edit
Rename
class-wp-post.php
6.272KB
Hapus
Edit
Rename
class-wp-query.php
135.702KB
Hapus
Edit
Rename
class-wp-recovery-mode-cookie-service.php
6.308KB
Hapus
Edit
Rename
class-wp-recovery-mode-email-service.php
10.41KB
Hapus
Edit
Rename
class-wp-recovery-mode-key-service.php
4.17KB
Hapus
Edit
Rename
class-wp-recovery-mode-link-service.php
3.321KB
Hapus
Edit
Rename
class-wp-recovery-mode.php
11.111KB
Hapus
Edit
Rename
class-wp-rewrite.php
61.486KB
Hapus
Edit
Rename
class-wp-role.php
2.439KB
Hapus
Edit
Rename
class-wp-roles.php
8.236KB
Hapus
Edit
Rename
class-wp-session-tokens.php
7.251KB
Hapus
Edit
Rename
class-wp-simplepie-file.php
3.183KB
Hapus
Edit
Rename
class-wp-simplepie-sanitize-kses.php
1.733KB
Hapus
Edit
Rename
class-wp-site-query.php
29.648KB
Hapus
Edit
Rename
class-wp-site.php
7.254KB
Hapus
Edit
Rename
class-wp-tax-query.php
18.993KB
Hapus
Edit
Rename
class-wp-taxonomy.php
13.409KB
Hapus
Edit
Rename
class-wp-term-query.php
37.178KB
Hapus
Edit
Rename
class-wp-term.php
5.148KB
Hapus
Edit
Rename
class-wp-text-diff-renderer-inline.php
0.699KB
Hapus
Edit
Rename
class-wp-text-diff-renderer-table.php
16.401KB
Hapus
Edit
Rename
class-wp-theme-json-resolver.php
14.063KB
Hapus
Edit
Rename
class-wp-theme-json-schema.php
4.195KB
Hapus
Edit
Rename
class-wp-theme-json.php
61.309KB
Hapus
Edit
Rename
class-wp-theme.php
52.563KB
Hapus
Edit
Rename
class-wp-user-meta-session-tokens.php
2.92KB
Hapus
Edit
Rename
class-wp-user-query.php
37.177KB
Hapus
Edit
Rename
class-wp-user-request.php
2.145KB
Hapus
Edit
Rename
class-wp-user.php
21.702KB
Hapus
Edit
Rename
class-wp-walker.php
12.707KB
Hapus
Edit
Rename
class-wp-widget-factory.php
3.243KB
Hapus
Edit
Rename
class-wp-widget.php
17.723KB
Hapus
Edit
Rename
class-wp-xmlrpc-server.php
207.944KB
Hapus
Edit
Rename
class-wp.php
24.67KB
Hapus
Edit
Rename
class.wp-dependencies.php
13.68KB
Hapus
Edit
Rename
class.wp-scripts.php
18.5KB
Hapus
Edit
Rename
class.wp-styles.php
10.626KB
Hapus
Edit
Rename
comment-template.php
93.813KB
Hapus
Edit
Rename
comment.php
123.567KB
Hapus
Edit
Rename
compat.php
14.524KB
Hapus
Edit
Rename
cron.php
39.899KB
Hapus
Edit
Rename
date.php
0.396KB
Hapus
Edit
Rename
default-constants.php
10.017KB
Hapus
Edit
Rename
default-filters.php
30.728KB
Hapus
Edit
Rename
default-widgets.php
2.17KB
Hapus
Edit
Rename
deprecated.php
121.944KB
Hapus
Edit
Rename
embed-template.php
0.333KB
Hapus
Edit
Rename
embed.php
36.05KB
Hapus
Edit
Rename
error-protection.php
4.021KB
Hapus
Edit
Rename
feed-atom-comments.php
5.316KB
Hapus
Edit
Rename
feed-atom.php
2.977KB
Hapus
Edit
Rename
feed-rdf.php
2.605KB
Hapus
Edit
Rename
feed-rss.php
1.161KB
Hapus
Edit
Rename
feed-rss2-comments.php
3.975KB
Hapus
Edit
Rename
feed-rss2.php
3.71KB
Hapus
Edit
Rename
feed.php
22.428KB
Hapus
Edit
Rename
formatting.php
318.689KB
Hapus
Edit
Rename
functions.php
251.333KB
Hapus
Edit
Rename
functions.wp-scripts.php
13.121KB
Hapus
Edit
Rename
functions.wp-styles.php
8.37KB
Hapus
Edit
Rename
general-template.php
155.356KB
Hapus
Edit
Rename
global-styles-and-settings.php
6.21KB
Hapus
Edit
Rename
http.php
22.463KB
Hapus
Edit
Rename
https-detection.php
6.701KB
Hapus
Edit
Rename
https-migration.php
4.619KB
Hapus
Edit
Rename
kses.php
67.492KB
Hapus
Edit
Rename
l10n.php
57.655KB
Hapus
Edit
Rename
link-template.php
145.705KB
Hapus
Edit
Rename
load.php
49.001KB
Hapus
Edit
Rename
locale.php
0.158KB
Hapus
Edit
Rename
media-template.php
58.967KB
Hapus
Edit
Rename
media.php
180.748KB
Hapus
Edit
Rename
meta.php
61.213KB
Hapus
Edit
Rename
ms-blogs.php
24.584KB
Hapus
Edit
Rename
ms-default-constants.php
4.652KB
Hapus
Edit
Rename
ms-default-filters.php
6.35KB
Hapus
Edit
Rename
ms-deprecated.php
20.634KB
Hapus
Edit
Rename
ms-files.php
2.592KB
Hapus
Edit
Rename
ms-functions.php
91.922KB
Hapus
Edit
Rename
ms-load.php
19.322KB
Hapus
Edit
Rename
ms-network.php
3.575KB
Hapus
Edit
Rename
ms-settings.php
4.027KB
Hapus
Edit
Rename
ms-site.php
38.679KB
Hapus
Edit
Rename
nav-menu-template.php
22.75KB
Hapus
Edit
Rename
nav-menu.php
41.552KB
Hapus
Edit
Rename
option.php
75.102KB
Hapus
Edit
Rename
pluggable-deprecated.php
6.116KB
Hapus
Edit
Rename
pluggable.php
101.957KB
Hapus
Edit
Rename
plugin.php
33.414KB
Hapus
Edit
Rename
post-formats.php
6.913KB
Hapus
Edit
Rename
post-template.php
63.328KB
Hapus
Edit
Rename
post-thumbnail-template.php
10.633KB
Hapus
Edit
Rename
post.php
268.666KB
Hapus
Edit
Rename
query.php
34.944KB
Hapus
Edit
Rename
registration-functions.php
0.195KB
Hapus
Edit
Rename
registration.php
0.195KB
Hapus
Edit
Rename
rest-api.php
93.053KB
Hapus
Edit
Rename
revision.php
22.933KB
Hapus
Edit
Rename
rewrite.php
18.763KB
Hapus
Edit
Rename
robots-template.php
5.052KB
Hapus
Edit
Rename
rss-functions.php
0.249KB
Hapus
Edit
Rename
rss.php
22.439KB
Hapus
Edit
Rename
script-loader.php
110.872KB
Hapus
Edit
Rename
session.php
0.252KB
Hapus
Edit
Rename
shortcodes.php
20.93KB
Hapus
Edit
Rename
sitemaps.php
3.162KB
Hapus
Edit
Rename
spl-autoload-compat.php
0.431KB
Hapus
Edit
Rename
taxonomy.php
167.623KB
Hapus
Edit
Rename
template-canvas.php
0.578KB
Hapus
Edit
Rename
template-loader.php
2.941KB
Hapus
Edit
Rename
template.php
21.958KB
Hapus
Edit
Rename
theme-i18n.json
0.903KB
Hapus
Edit
Rename
theme-templates.php
5.404KB
Hapus
Edit
Rename
theme.json
5.602KB
Hapus
Edit
Rename
theme.php
124.052KB
Hapus
Edit
Rename
update.php
29.338KB
Hapus
Edit
Rename
user.php
157.788KB
Hapus
Edit
Rename
vars.php
5.68KB
Hapus
Edit
Rename
version.php
0.937KB
Hapus
Edit
Rename
widgets.php
67.579KB
Hapus
Edit
Rename
wlwmanifest.xml
1.021KB
Hapus
Edit
Rename
wp-db.php
106.221KB
Hapus
Edit
Rename
wp-diff.php
0.632KB
Hapus
Edit
Rename
<?php /** * WP_Theme_JSON_Resolver class * * @package WordPress * @subpackage Theme * @since 5.8.0 */ /** * Class that abstracts the processing of the different data sources * for site-level config and offers an API to work with them. * * This class is for internal core usage and is not supposed to be used by extenders (plugins and/or themes). * This is a low-level API that may need to do breaking changes. Please, * use get_global_settings, get_global_styles, and get_global_stylesheet instead. * * @access private */ class WP_Theme_JSON_Resolver { /** * Container for data coming from core. * * @since 5.8.0 * @var WP_Theme_JSON */ protected static $core = null; /** * Container for data coming from the theme. * * @since 5.8.0 * @var WP_Theme_JSON */ protected static $theme = null; /** * Whether or not the theme supports theme.json. * * @since 5.8.0 * @var bool */ protected static $theme_has_support = null; /** * Container for data coming from the user. * * @since 5.9.0 * @var WP_Theme_JSON */ protected static $user = null; /** * Stores the ID of the custom post type * that holds the user data. * * @since 5.9.0 * @var int */ protected static $user_custom_post_type_id = null; /** * Container to keep loaded i18n schema for `theme.json`. * * @since 5.8.0 As `$theme_json_i18n`. * @since 5.9.0 Renamed from `$theme_json_i18n` to `$i18n_schema`. * @var array */ protected static $i18n_schema = null; /** * Processes a file that adheres to the theme.json schema * and returns an array with its contents, or a void array if none found. * * @since 5.8.0 * * @param string $file_path Path to file. Empty if no file. * @return array Contents that adhere to the theme.json schema. */ protected static function read_json_file( $file_path ) { $config = array(); if ( $file_path ) { $decoded_file = wp_json_file_decode( $file_path, array( 'associative' => true ) ); if ( is_array( $decoded_file ) ) { $config = $decoded_file; } } return $config; } /** * Returns a data structure used in theme.json translation. * * @since 5.8.0 * @deprecated 5.9.0 * * @return array An array of theme.json fields that are translatable and the keys that are translatable. */ public static function get_fields_to_translate() { _deprecated_function( __METHOD__, '5.9.0' ); return array(); } /** * Given a theme.json structure modifies it in place to update certain values * by its translated strings according to the language set by the user. * * @since 5.8.0 * * @param array $theme_json The theme.json to translate. * @param string $domain Optional. Text domain. Unique identifier for retrieving translated strings. * Default 'default'. * @return array Returns the modified $theme_json_structure. */ protected static function translate( $theme_json, $domain = 'default' ) { if ( null === static::$i18n_schema ) { $i18n_schema = wp_json_file_decode( __DIR__ . '/theme-i18n.json' ); static::$i18n_schema = null === $i18n_schema ? array() : $i18n_schema; } return translate_settings_using_i18n_schema( static::$i18n_schema, $theme_json, $domain ); } /** * Return core's origin config. * * @since 5.8.0 * * @return WP_Theme_JSON Entity that holds core data. */ public static function get_core_data() { if ( null !== static::$core ) { return static::$core; } $config = static::read_json_file( __DIR__ . '/theme.json' ); $config = static::translate( $config ); static::$core = new WP_Theme_JSON( $config, 'default' ); return static::$core; } /** * Returns the theme's data. * * Data from theme.json will be backfilled from existing * theme supports, if any. Note that if the same data * is present in theme.json and in theme supports, * the theme.json takes precendence. * * @since 5.8.0 * @since 5.9.0 Theme supports have been inlined and the `$theme_support_data` argument removed. * * @param array $deprecated Deprecated. Not used. * @return WP_Theme_JSON Entity that holds theme data. */ public static function get_theme_data( $deprecated = array() ) { if ( ! empty( $deprecated ) ) { _deprecated_argument( __METHOD__, '5.9.0' ); } if ( null === static::$theme ) { $theme_json_data = static::read_json_file( static::get_file_path_from_theme( 'theme.json' ) ); $theme_json_data = static::translate( $theme_json_data, wp_get_theme()->get( 'TextDomain' ) ); static::$theme = new WP_Theme_JSON( $theme_json_data ); if ( wp_get_theme()->parent() ) { // Get parent theme.json. $parent_theme_json_data = static::read_json_file( static::get_file_path_from_theme( 'theme.json', true ) ); $parent_theme_json_data = static::translate( $parent_theme_json_data, wp_get_theme()->parent()->get( 'TextDomain' ) ); $parent_theme = new WP_Theme_JSON( $parent_theme_json_data ); // Merge the child theme.json into the parent theme.json. // The child theme takes precedence over the parent. $parent_theme->merge( static::$theme ); static::$theme = $parent_theme; } } /* * We want the presets and settings declared in theme.json * to override the ones declared via theme supports. * So we take theme supports, transform it to theme.json shape * and merge the static::$theme upon that. */ $theme_support_data = WP_Theme_JSON::get_from_editor_settings( get_default_block_editor_settings() ); if ( ! static::theme_has_support() ) { if ( ! isset( $theme_support_data['settings']['color'] ) ) { $theme_support_data['settings']['color'] = array(); } $default_palette = false; if ( current_theme_supports( 'default-color-palette' ) ) { $default_palette = true; } if ( ! isset( $theme_support_data['settings']['color']['palette'] ) ) { // If the theme does not have any palette, we still want to show the core one. $default_palette = true; } $theme_support_data['settings']['color']['defaultPalette'] = $default_palette; $default_gradients = false; if ( current_theme_supports( 'default-gradient-presets' ) ) { $default_gradients = true; } if ( ! isset( $theme_support_data['settings']['color']['gradients'] ) ) { // If the theme does not have any gradients, we still want to show the core ones. $default_gradients = true; } $theme_support_data['settings']['color']['defaultGradients'] = $default_gradients; } $with_theme_supports = new WP_Theme_JSON( $theme_support_data ); $with_theme_supports->merge( static::$theme ); return $with_theme_supports; } /** * Returns the custom post type that contains the user's origin config * for the current theme or a void array if none are found. * * This can also create and return a new draft custom post type. * * @since 5.9.0 * * @param WP_Theme $theme The theme object. If empty, it * defaults to the current theme. * @param bool $create_post Optional. Whether a new custom post * type should be created if none are * found. Default false. * @param array $post_status_filter Optional. Filter custom post type by * post status. Default `array( 'publish' )`, * so it only fetches published posts. * @return array Custom Post Type for the user's origin config. */ public static function get_user_data_from_wp_global_styles( $theme, $create_post = false, $post_status_filter = array( 'publish' ) ) { if ( ! $theme instanceof WP_Theme ) { $theme = wp_get_theme(); } $user_cpt = array(); $post_type_filter = 'wp_global_styles'; $args = array( 'numberposts' => 1, 'orderby' => 'date', 'order' => 'desc', 'post_type' => $post_type_filter, 'post_status' => $post_status_filter, 'tax_query' => array( array( 'taxonomy' => 'wp_theme', 'field' => 'name', 'terms' => $theme->get_stylesheet(), ), ), ); $cache_key = sprintf( 'wp_global_styles_%s', md5( serialize( $args ) ) ); $post_id = wp_cache_get( $cache_key ); if ( (int) $post_id > 0 ) { return get_post( $post_id, ARRAY_A ); } // Special case: '-1' is a results not found. if ( -1 === $post_id && ! $create_post ) { return $user_cpt; } $recent_posts = wp_get_recent_posts( $args ); if ( is_array( $recent_posts ) && ( count( $recent_posts ) === 1 ) ) { $user_cpt = $recent_posts[0]; } elseif ( $create_post ) { $cpt_post_id = wp_insert_post( array( 'post_content' => '{"version": ' . WP_Theme_JSON::LATEST_SCHEMA . ', "isGlobalStylesUserThemeJSON": true }', 'post_status' => 'publish', 'post_title' => 'Custom Styles', 'post_type' => $post_type_filter, 'post_name' => 'wp-global-styles-' . urlencode( wp_get_theme()->get_stylesheet() ), 'tax_input' => array( 'wp_theme' => array( wp_get_theme()->get_stylesheet() ), ), ), true ); $user_cpt = get_post( $cpt_post_id, ARRAY_A ); } $cache_expiration = $user_cpt ? DAY_IN_SECONDS : HOUR_IN_SECONDS; wp_cache_set( $cache_key, $user_cpt ? $user_cpt['ID'] : -1, '', $cache_expiration ); return $user_cpt; } /** * Returns the user's origin config. * * @since 5.9.0 * * @return WP_Theme_JSON Entity that holds styles for user data. */ public static function get_user_data() { if ( null !== static::$user ) { return static::$user; } $config = array(); $user_cpt = static::get_user_data_from_wp_global_styles( wp_get_theme() ); if ( array_key_exists( 'post_content', $user_cpt ) ) { $decoded_data = json_decode( $user_cpt['post_content'], true ); $json_decoding_error = json_last_error(); if ( JSON_ERROR_NONE !== $json_decoding_error ) { trigger_error( 'Error when decoding a theme.json schema for user data. ' . json_last_error_msg() ); return new WP_Theme_JSON( $config, 'custom' ); } // Very important to verify that the flag isGlobalStylesUserThemeJSON is true. // If it's not true then the content was not escaped and is not safe. if ( is_array( $decoded_data ) && isset( $decoded_data['isGlobalStylesUserThemeJSON'] ) && $decoded_data['isGlobalStylesUserThemeJSON'] ) { unset( $decoded_data['isGlobalStylesUserThemeJSON'] ); $config = $decoded_data; } } static::$user = new WP_Theme_JSON( $config, 'custom' ); return static::$user; } /** * Returns the data merged from multiple origins. * * There are three sources of data (origins) for a site: * default, theme, and custom. The custom's has higher priority * than the theme's, and the theme's higher than default's. * * Unlike the getters {@link get_core_data}, * {@link get_theme_data}, and {@link get_user_data}, * this method returns data after it has been merged * with the previous origins. This means that if the same piece of data * is declared in different origins (user, theme, and core), * the last origin overrides the previous. * * For example, if the user has set a background color * for the paragraph block, and the theme has done it as well, * the user preference wins. * * @since 5.8.0 * @since 5.9.0 Added user data, removed the `$settings` parameter, * added the `$origin` parameter. * * @param string $origin Optional. To what level should we merge data. * Valid values are 'theme' or 'custom'. Default 'custom'. * @return WP_Theme_JSON */ public static function get_merged_data( $origin = 'custom' ) { if ( is_array( $origin ) ) { _deprecated_argument( __FUNCTION__, '5.9.0' ); } $result = new WP_Theme_JSON(); $result->merge( static::get_core_data() ); $result->merge( static::get_theme_data() ); if ( 'custom' === $origin ) { $result->merge( static::get_user_data() ); } return $result; } /** * Returns the ID of the custom post type * that stores user data. * * @since 5.9.0 * * @return integer|null */ public static function get_user_global_styles_post_id() { if ( null !== static::$user_custom_post_type_id ) { return static::$user_custom_post_type_id; } $user_cpt = static::get_user_data_from_wp_global_styles( wp_get_theme(), true ); if ( array_key_exists( 'ID', $user_cpt ) ) { static::$user_custom_post_type_id = $user_cpt['ID']; } return static::$user_custom_post_type_id; } /** * Whether the current theme has a theme.json file. * * @since 5.8.0 * @since 5.9.0 Added a check in the parent theme. * * @return bool */ public static function theme_has_support() { if ( ! isset( static::$theme_has_support ) ) { static::$theme_has_support = ( is_readable( static::get_file_path_from_theme( 'theme.json' ) ) || is_readable( static::get_file_path_from_theme( 'theme.json', true ) ) ); } return static::$theme_has_support; } /** * Builds the path to the given file and checks that it is readable. * * If it isn't, returns an empty string, otherwise returns the whole file path. * * @since 5.8.0 * @since 5.9.0 Adapted to work with child themes, added the `$template` argument. * * @param string $file_name Name of the file. * @param bool $template Optional. Use template theme directory. Default false. * @return string The whole file path or empty if the file doesn't exist. */ protected static function get_file_path_from_theme( $file_name, $template = false ) { $path = $template ? get_template_directory() : get_stylesheet_directory(); $candidate = $path . '/' . $file_name; return is_readable( $candidate ) ? $candidate : ''; } /** * Cleans the cached data so it can be recalculated. * * @since 5.8.0 * @since 5.9.0 Added the `$user`, `$user_custom_post_type_id`, * and `$i18n_schema` variables to reset. */ public static function clean_cached_data() { static::$core = null; static::$theme = null; static::$user = null; static::$user_custom_post_type_id = null; static::$theme_has_support = null; static::$i18n_schema = null; } }