get_block_wrapper_attributes() WordPress Function

The get_block_wrapper_attributes() function can be used to get the attributes for a given block. This is useful for blocks that need to be wrapped in an element with specific attributes, such as a class or id. This function takes two arguments: the block name (string) and an array of attributes. The block name is the name of the block you want to get the attributes for. The array of attributes is an associative array where the keys are the attribute names and the values are the attribute values. This function returns an array of attributes for the given block. If the block does not exist, an empty array is returned.

get_block_wrapper_attributes( string[] $extra_attributes = array() ) #

Generates a string of attributes by applying to the current block being rendered all of the features that the block supports.


Parameters

$extra_attributes

(string[])(Optional) Array of extra attributes to render on the block wrapper.

Default value: array()


Top ↑

Return

(string) String of HTML attributes.


Top ↑

Source

File: wp-includes/class-wp-block-supports.php

function get_block_wrapper_attributes( $extra_attributes = array() ) {
	$new_attributes = WP_Block_Supports::get_instance()->apply_block_supports();

	if ( empty( $new_attributes ) && empty( $extra_attributes ) ) {
		return '';
	}

	// This is hardcoded on purpose.
	// We only support a fixed list of attributes.
	$attributes_to_merge = array( 'style', 'class' );
	$attributes          = array();
	foreach ( $attributes_to_merge as $attribute_name ) {
		if ( empty( $new_attributes[ $attribute_name ] ) && empty( $extra_attributes[ $attribute_name ] ) ) {
			continue;
		}

		if ( empty( $new_attributes[ $attribute_name ] ) ) {
			$attributes[ $attribute_name ] = $extra_attributes[ $attribute_name ];
			continue;
		}

		if ( empty( $extra_attributes[ $attribute_name ] ) ) {
			$attributes[ $attribute_name ] = $new_attributes[ $attribute_name ];
			continue;
		}

		$attributes[ $attribute_name ] = $extra_attributes[ $attribute_name ] . ' ' . $new_attributes[ $attribute_name ];
	}

	foreach ( $extra_attributes as $attribute_name => $value ) {
		if ( ! in_array( $attribute_name, $attributes_to_merge, true ) ) {
			$attributes[ $attribute_name ] = $value;
		}
	}

	if ( empty( $attributes ) ) {
		return '';
	}

	$normalized_attributes = array();
	foreach ( $attributes as $key => $value ) {
		$normalized_attributes[] = $key . '="' . esc_attr( $value ) . '"';
	}

	return implode( ' ', $normalized_attributes );
}


Top ↑

Changelog

Changelog
VersionDescription
5.6.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.