В хуках WordPress block_type_metadata
предоставляет возможность разработчикам изменять метаданные блоков, загружаемые из block.json
во время регистрации блоков. Эта функция помогает настраивать блоки перед их обработкой, позволяя кастомизировать контент в редакторе в соответствии с потребностями.
Применение фильтра block_type_metadata
Хук block_type_metadata
позволяет разработчикам проводить модификации над данными блоков до того, как они будут использованы системой. Это открывает широкие возможности для настройки функциональности блоков и улучшения интерфейса редактора WordPress.
Изменение версии API для всех блоков
function my_custom_block_metadata_version( $metadata ) {
$metadata['apiVersion'] = 3;
return $metadata;
}
add_filter( 'block_type_metadata', 'my_custom_block_metadata_version' );
Этот пример показывает, как изменить версию API для всех зарегистрированных блоков на 3.
Отключение поддержки градиентов для определенных блоков
function modify_paragraph_block_supports( $metadata ) {
if ( isset( $metadata['name'] ) && 'core/paragraph' === $metadata['name'] ) {
if ( isset( $metadata['supports']['color'] ) ) {
$metadata['supports']['color']['gradients'] = false;
}
}
return $metadata;
}
add_filter( 'block_type_metadata', 'modify_paragraph_block_supports' );
Здесь мы демонстрируем, как можно отключить поддержку градиентов для блока «core/paragraph», чтобы улучшить контроль редактора.
Добавление кастомного атрибута к блоку Group
function add_custom_attribute_to_group_block( $metadata ) {
if ( 'core/group' === $metadata['name'] ) {
$metadata['attributes']['isVisible'] = array(
'type' => 'boolean',
'default' => true,
);
}
return $metadata;
}
add_filter( 'block_type_metadata', 'add_custom_attribute_to_group_block' );
В этом примере добавляется новый атрибут
isVisible
для блокаcore/group
, который контролирует его видимость.
Заключение
Использование фильтра block_type_metadata
предоставляет гибкость в настройке блоков редактора WordPress. С его помощью можно изменить поддержку блоков, добавить новые атрибуты и настроить совместимость с API, делая интерфейс более управляемым и адаптивным под нужды пользователей.