block_bindings_supported_attributes
Позволяет изменить/добавить список атрибутов блока, которые поддерживают Block Bindings.
Хук применяется к любому блоку.
Полезно, когда нужно управлять тем, какие атрибуты блока можно заполнять динамически: например, из метаполей записи, пользовательского источника данных или другого источника Block Bindings.
Использование
add_filter( 'block_bindings_supported_attributes', 'wp_kama_block_bindings_supported_attributes_filter', 10, 2 );
/**
* Function for `block_bindings_supported_attributes` filter-hook.
*
* @param string[] $supported_block_attributes The block's attributes that are supported by block bindings.
* @param string $block_type The block type whose attributes are being filtered.
*
* @return string[]
*/
function wp_kama_block_bindings_supported_attributes_filter( $supported_block_attributes, $block_type ){
// filter...
return $supported_block_attributes;
}
- $supported_block_attributes(string[])
- Массив атрибутов блока, которые поддерживают Block Bindings.
- $block_type(string)
Имя блока, для которого фильтруется список атрибутов.
Например:
core/paragraph,core/image,my-plugin/card.
Примеры
#1 Добавим поддержку для атрибута своего блока
В примере атрибут subtitle добавляется в список атрибутов, которые можно связать с источником данных.
add_filter( 'block_bindings_supported_attributes', 'my_card_binding_attributes', 10, 2 );
function my_card_binding_attributes( $attributes, $block_name ) {
if (
'my-plugin/card' !== $block_name
&& ! in_array( 'subtitle', $attributes, true )
) {
$attributes[] = 'subtitle';
}
return $attributes;
} #2 Уберем поддержку для title у блока изображения
В примере атрибут title удаляется из списка поддерживаемых атрибутов для блока core/image.
add_filter( 'block_bindings_supported_attributes', 'my_remove_image_binding_attributes', 10, 2 );
function my_remove_image_binding_attributes( $attributes, $block_name ) {
if ( 'core/image' !== $block_name ) {
return $attributes;
}
return array_values(
array_diff( $attributes, [ 'title' ] )
);
}
Список изменений
| С версии 6.9.0 | Введена. |
Где вызывается хук
block_bindings_supported_attributes
wp-includes/block-bindings.php 165-169
$supported_block_attributes = apply_filters( 'block_bindings_supported_attributes', $supported_block_attributes, $block_type );