WP_Block::__construct() WordPress Method
The WP_Block::__construct() method initializes a new block object.
WP_Block::__construct( array $block, array $available_context = array(), WP_Block_Type_Registry $registry = null ) #
Constructor.
Description
Populates object properties from the provided block instance argument.
The given array of context values will not necessarily be available on the instance itself, but is treated as the full set of values provided by the block’s ancestry. This is assigned to the private available_context
property. Only values which are configured to consumed by the block via its registered type will be assigned to the block’s context
property.
Parameters
- $block
(array)(Required)Array of parsed block properties.
- $available_context
(array)(Optional)array of ancestry context values.
Default value: array()
- $registry
(WP_Block_Type_Registry)(Optional)block type registry.
Default value: null
Source
File: wp-includes/class-wp-block.php
public function __construct( $block, $available_context = array(), $registry = null ) { $this->parsed_block = $block; $this->name = $block['blockName']; if ( is_null( $registry ) ) { $registry = WP_Block_Type_Registry::get_instance(); } $this->registry = $registry; $this->block_type = $registry->get_registered( $this->name ); $this->available_context = $available_context; if ( ! empty( $this->block_type->uses_context ) ) { foreach ( $this->block_type->uses_context as $context_name ) { if ( array_key_exists( $context_name, $this->available_context ) ) { $this->context[ $context_name ] = $this->available_context[ $context_name ]; } } } if ( ! empty( $block['innerBlocks'] ) ) { $child_context = $this->available_context; if ( ! empty( $this->block_type->provides_context ) ) { foreach ( $this->block_type->provides_context as $context_name => $attribute_name ) { if ( array_key_exists( $attribute_name, $this->attributes ) ) { $child_context[ $context_name ] = $this->attributes[ $attribute_name ]; } } } $this->inner_blocks = new WP_Block_List( $block['innerBlocks'], $child_context, $registry ); } if ( ! empty( $block['innerHTML'] ) ) { $this->inner_html = $block['innerHTML']; } if ( ! empty( $block['innerContent'] ) ) { $this->inner_content = $block['innerContent']; } }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
5.5.0 | Introduced. |