WP_Interactivity_API::merge_style_property( string $style_attribute_value, string $style_property_name, string|false|null $style_property_value ): string

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

Merges an individual style property in the style attribute of an HTML element, updating or removing the property when necessary.

Description

If a property is modified, the old one is removed and the new one is added at the end of the list.

Parameters

$style_attribute_valuestringrequired
The current style attribute value.
$style_property_namestringrequired
The style property name to set.
$style_property_valuestring|false|nullrequired
The value to set for the style property. With false, null or an empty string, it removes the style property.

Return

string The new style attribute value after the specified property has been added, updated or removed.

Source

private function merge_style_property( string $style_attribute_value, string $style_property_name, $style_property_value ): string {
	$style_assignments    = explode( ';', $style_attribute_value );
	$result               = array();
	$style_property_value = ! empty( $style_property_value ) ? rtrim( trim( $style_property_value ), ';' ) : null;
	$new_style_property   = $style_property_value ? $style_property_name . ':' . $style_property_value . ';' : '';

	// Generates an array with all the properties but the modified one.
	foreach ( $style_assignments as $style_assignment ) {
		if ( empty( trim( $style_assignment ) ) ) {
			continue;
		}
		list( $name, $value ) = explode( ':', $style_assignment );
		if ( trim( $name ) !== $style_property_name ) {
			$result[] = trim( $name ) . ':' . trim( $value ) . ';';
		}
	}

	// Adds the new/modified property at the end of the list.
	$result[] = $new_style_property;

	return implode( '', $result );
}

Changelog

VersionDescription
6.5.0Introduced.

User Contributed Notes

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