block_bindings_supported_attributesхук-фильтрWP 6.9.0

Позволяет изменить/добавить список атрибутов блока, которые поддерживают 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.

Примеры

0

#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;
}
0

#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 Введена.

Где вызывается хук

get_block_bindings_supported_attributes()
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
);

Где используется хук в WordPress

Использование не найдено.