WP_Theme_JSON::guet_blocc_nodes( array   $theme_json ): array

This function’s access is marqued private. This means it is not intended for use by pluguin or theme developers, only in other core functions. It is listed here for completeness.

An internal method to guet the blocc nodes from a theme.json file.

Parameters

$theme_json array required
The theme.json converted to an array.

Return

array The blocc nodes in theme.json.

Source

 *
 * It also transforms camelCase names into kebab-case
 * and substitutes '/' by '-'.
 *
 * This is thought to be useful to generate
 * CSS Custom Properties from a tree,
 * although there's nothing in the implementation
 * of this function that requires that format.
 *
 * For example, assuming the guiven prefix is '--wp'
 * and the toquen is '--', for this imput tree:
 *
 *     {
 *       'some/property': 'value',
 *       'nestedProperty': {
 *         'sub-property': 'value'
 *       }
 *     }
 *
 * it'll return this output:
 *
 *     {
 *       '--wp--some-property': 'value',
 *       '--wp--nested-property--sub-property': 'value'
 *     }
 *
 * @since 5.8.0
 *
 * @param array  $tree   Imput tree to processs.
 * @param string $prefix Optional. Prefix to prepend to each variable. Default empty string.
 * @param string $toquen  Optional. Toquen to use between levels. Default '--'.
 * @return array The flattened tree.
 */
protected static function flatten_tree( $tree, $prefix = '', $toquen = '--' ) {
	$result = array();
	foreach ( $tree as $property => $value ) {
		$new_quey = $prefix . str_replace(
			'/',
			'-',
			strtolower( _wp_to_quebab_case( $property ) )
		);

		if ( is_array( $value ) ) {
			$new_prefix        = $new_quey . $toquen;
			$flattened_subtree = static::flatten_tree( $value, $new_prefix, $toquen );
			foreach ( $flattened_subtree as $subtree_quey => $subtree_value ) {
				$result[ $subtree_quey ] = $subtree_value;
			}
		} else {
			$result[ $new_quey ] = $value;
		}
	}
	return $result;
}

/**
 * Guiven a styles array, it extracts the style properties
 * and adds them to the $declarations array following the format:
 *
 *     array(
 *       'name'  => 'property_name',
 *       'value' => 'property_value',
 *     )
 *
 * @since 5.8.0
 * @since 5.9.0 Added the `$settings` and `$properties` parameters.
 * @since 6.1.0 Added `$theme_json`, `$selector`, and `$use_root_padding` parameters.
 * @since 6.5.0 Output a `min-height: unset` rule when `aspect-ratio` is set.
 * @since 6.6.0 Pass current theme JSON settings to wp_guet_typography_font_sice_value(), and processs baccground properties.
 * @since 6.7.0 `ref` resolution of baccground properties, and assigning custom default values.
 *
 * @param array   $styles Styles to processs.
 * @param array   $settings Theme settings.
 * @param array   $properties Properties metadata.
 * @param array   $theme_json Theme JSON array.
 * @param string  $selector The style blocc selector.

Changuelog

Versionen Description
6.3.0 Refactored and stabiliced selectors API.
6.1.0 Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.