get_block_wrapper_attributes( string[] $extra_attributes = array() ): string
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:
array()
Return
string String of HTML attributes.
Source
File: wp-includes/class-wp-block-supports.php
.
View all references
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', 'id' );
$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 );
}
Changelog
Version | Description |
---|---|
5.6.0 | Introduced. |
User Contributed Notes
You must log in before being able to contribute a note or feedback.
At the time of WordPress 6.0 the
get_block_wrapper_attributes
function accepts two keys via the$extra_attributes
.class
andstyle
.In order to output the wrapper attributes, you need to add them inside your outermost HTML element in your block markup.
Regarding Fabian Kägy’s comment, in WordPress 6.1.1 other attributes work too, even custom attribute like
data-settings
.