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_attributesstring[] 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_attributesfunction accepts two keys via the$extra_attributes.classandstyle.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.