block_type_metadata
云策文档标注
概述
block_type_metadata 是一个 WordPress 过滤器,用于在注册块类型时修改其元数据。它允许开发者在块类型注册过程中动态调整元数据数组,例如添加自定义属性。
关键要点
- 过滤器名称:block_type_metadata,用于过滤块类型注册的元数据。
- 参数:$metadata(数组),包含块类型的注册元数据。
- 用途:常用于通过 register_block_type_from_metadata() 函数从 block.json 文件注册块类型时,自定义或扩展元数据。
- 引入版本:WordPress 5.7.0。
代码示例
/**
* Add custom 'visibleOnMobile' attribute to the core/group block.
*
* @param array $metadata Metadata for registering a block type.
* @return array
*/
function my_filter_block_type_metadata( $metadata ) {
if ( 'core/group' === $metadata['name'] ) {
$metadata['attributes']['visibleOnMobile'] = array(
'type' => 'boolean',
'default' => false,
);
}
return $metadata;
}
add_filter( 'block_type_metadata', 'my_filter_block_type_metadata' );注意事项
- 在添加自定义属性时,必须设置 'default' 键,否则添加可能会失败且无错误提示。
原文内容
Filters the metadata provided for registering a block type.
Parameters
$metadataarray-
Metadata for registering a block type.
Source
$metadata = apply_filters( 'block_type_metadata', $metadata );
Changelog
| Version | Description |
|---|---|
| 5.7.0 | Introduced. |
Skip to note 3 content
Elvis Morales
/** * Add custom 'visibleOnMobile' attribute to the core/group block. * * @param array $metadata Metadata for registering a block type. * @return array */ function my_filter_block_type_metadata( $metadata ) { if ( 'core/group' === $metadata['name'] ) { $metadata['attributes']['visibleOnMobile'] = array( 'type' => 'boolean', 'default' => false, ); } return $metadata; } add_filter( 'block_type_metadata', 'my_filter_block_type_metadata' );Skip to note 4 content
Lovro Hrust
If you use method to add additional attributes similar to shown above from Elvis Morales, it is obligatory to set ‘default’ key, otherwise adding block attribute will fail without error message.