WP_Theme_JSON::__construct()publicWP 5.8.0

Constructor.

{} Это метод класса: WP_Theme_JSON{}

Хуков нет.

Возвращает

null. Ничего.

Использование

$WP_Theme_JSON = new WP_Theme_JSON();
$WP_Theme_JSON->__construct( $theme_json, $origin );
$theme_json(массив)
A structure that follows the theme.json schema.
По умолчанию: array()
$origin(строка)
What source of data this object represents. One of 'default', 'theme', or 'custom'.
По умолчанию: 'theme'

Список изменений

С версии 5.8.0 Введена.

Код WP_Theme_JSON::__construct() WP 6.0.2

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 ) );
				}
			}
		}
	}
}