钩子文档

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.

User Contributed Notes

  1. Skip to note 3 content

    /**
     * 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' );