WP_Style_Engine::get_classnames( string $style_value, array $style_definition ): string[]

In this article

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

Parameters

$style_valuestringrequired
A single raw style value or CSS preset property from the $block_styles array.
$style_definitionarrayrequired
A single style definition from BLOCK_STYLE_DEFINITIONS_METADATA.

Return

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

Source

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

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

Changelog

VersionDescription
6.1.0Introduced.

User Contributed Notes

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