The register_block_type_from_metadata() WordPress PHP function registers a block type from the metadata stored in the block.json file.
Usage
register_block_type_from_metadata($file_or_folder, $args = array());
Parameters
- $file_or_folder (string) – Required. Path to the JSON file with metadata definition for the block or path to the folder where the block.json file is located. If providing the path to a JSON file, the filename must end with block.json.
- $args (array) – Optional. Array of block type arguments. Accepts any public property of WP_Block_Type. See WP_Block_Type::__construct() for information on accepted arguments.
More information
See WordPress Developer Resources: register_block_type_from_metadata
Examples
Register a block type from metadata
This example demonstrates how to register a block type from the metadata stored in the “my-block/block.json” file.
add_action('init', 'my_block_register'); function my_block_register() { register_block_type_from_metadata(__DIR__ . '/my-block'); }
Register a block type with custom arguments
This example shows how to register a block type from metadata with custom arguments.
add_action('init', 'my_block_with_args_register'); function my_block_with_args_register() { register_block_type_from_metadata( __DIR__ . '/my-block', array( 'render_callback' => 'my_custom_render_callback' ) ); } function my_custom_render_callback() { // Custom rendering logic }
Register multiple block types from different folders
This example demonstrates how to register multiple block types from different folders.
add_action('init', 'register_multiple_blocks'); function register_multiple_blocks() { register_block_type_from_metadata(__DIR__ . '/my-first-block'); register_block_type_from_metadata(__DIR__ . '/my-second-block'); }
Override block.json settings using $args parameter
This example shows how to override specific settings from the block.json file using the $args
parameter.
add_action('init', 'override_block_json_settings'); function override_block_json_settings() { register_block_type_from_metadata( __DIR__ . '/my-block', array( 'title' => 'My Custom Title', 'category' => 'my-custom-category', 'icon' => 'dashicons-star' ) ); }
Accessing block attributes in a render callback
This example demonstrates how to access block attributes within a custom render callback.
add_action('init', 'register_block_with_render_callback'); function register_block_with_render_callback() { register_block_type_from_metadata( __DIR__ . '/my-block', array( 'render_callback' => 'my_render_callback' ) ); } function my_render_callback($attributes, $content) { // Access block attributes $title = $attributes['title']; // Custom rendering logic }