WP_Theme_JSON::__construct() WordPress Method
The WP_Theme_JSON class constructor initializes the class and sets up the data structures for storing and retrieving theme information. It also sets up the appropriate filters and actions for handling theme requests.
WP_Theme_JSON::__construct( array $theme_json = array(), string $origin = 'theme' ) #
Constructor.
Parameters
- $theme_json
(array)(Optional)A structure that follows the theme.json schema.
Default value: array()
- $origin
(string)(Optional) What source of data this object represents. One of 'default', 'theme', or 'custom'.
Default value: 'theme'
Source
File: wp-includes/class-wp-theme-json.php
public function __construct( $theme_json = array(), $origin = 'theme' ) { if ( ! in_array( $origin, static::VALID_ORIGINS, true ) ) { $origin = 'theme'; } $this->theme_json = WP_Theme_JSON_Schema::migrate( $theme_json ); $valid_block_names = array_keys( static::get_blocks_metadata() ); $valid_element_names = array_keys( static::ELEMENTS ); $theme_json = static::sanitize( $this->theme_json, $valid_block_names, $valid_element_names ); $this->theme_json = static::maybe_opt_in_into_settings( $theme_json ); // Internally, presets are keyed by origin. $nodes = static::get_setting_nodes( $this->theme_json ); foreach ( $nodes as $node ) { foreach ( static::PRESETS_METADATA as $preset_metadata ) { $path = array_merge( $node['path'], $preset_metadata['path'] ); $preset = _wp_array_get( $this->theme_json, $path, null ); if ( null !== $preset ) { // If the preset is not already keyed by origin. if ( isset( $preset[0] ) || empty( $preset ) ) { _wp_array_set( $this->theme_json, $path, array( $origin => $preset ) ); } } } } }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
5.8.0 | Introduced. |