GC_Block::__construct()
最后更新于:2021-11-26 09:40:27
GC_Block::__construct( array$block, array$available_context=array(), GC_Block_Type_Registry$registry=null)Constructor.
参数
- $block
-
(array) (Required) Array of parsed block properties.
- $available_context
-
(array) (Optional) array of ancestry context values.
Default value: array()
- $registry
-
(GC_Block_Type_Registry) (Optional) block type registry.
Default value: null
源文件
文件: gc-includes/class-gc-block.php
public function __construct( $block, $available_context = array(), $registry = null ) {
$this->parsed_block = $block;
$this->name = $block['blockName'];
if ( is_null( $registry ) ) {
$registry = GC_Block_Type_Registry::get_instance();
}
$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 GC_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'];
}
}