WP_Style_Engine::get_classnames()protected staticWP 6.1.0

Returns classnames, and generates classname(s) from a CSS preset property pattern, e.g. var:preset|<PRESET_TYPE>|<PRESET_SLUG>.

Method of the class: WP_Style_Engine{}

No Hooks.

Return

String[]. An array of CSS classnames, or empty array if there are none.

Usage

$result = WP_Style_Engine::get_classnames( $style_value, $style_definition );
$style_value(string) (required)
A single raw style value or CSS preset property from the $block_styles array.
$style_definition(array) (required)
A single style definition from BLOCK_STYLE_DEFINITIONS_METADATA.

Changelog

Since 6.1.0 Introduced.

WP_Style_Engine::get_classnames() code WP 6.5.2

protected static function get_classnames( $style_value, $style_definition ) {
	if ( empty( $style_value ) ) {
		return array();
	}

	$classnames = array();
	if ( ! empty( $style_definition['classnames'] ) ) {
		foreach ( $style_definition['classnames'] as $classname => $property_key ) {
			if ( true === $property_key ) {
				$classnames[] = $classname;
			}

			$slug = static::get_slug_from_preset_value( $style_value, $property_key );

			if ( $slug ) {
				/*
				 * Right now we expect a classname pattern to be stored in BLOCK_STYLE_DEFINITIONS_METADATA.
				 * One day, if there are no stored schemata, we could allow custom patterns or
				 * generate classnames based on other properties
				 * such as a path or a value or a prefix passed in options.
				 */
				$classnames[] = strtr( $classname, array( '$slug' => $slug ) );
			}
		}
	}

	return $classnames;
}