类文档

WP_Block_Parser_Block

💡 云策文档标注

概述

WP_Block_Parser_Block 是 WordPress 5.0.0 引入的类,用于在内存中存储块结构,支持块编辑器(Gutenberg)的解析过程。它定义了块的核心属性,如名称、属性、内部块和内容,并通过构造函数初始化这些属性。

关键要点

  • WP_Block_Parser_Block 类用于表示块结构,是块解析器的一部分。
  • 主要属性包括:blockName(块名称,如 "core/paragraph")、attrs(块属性数组)、innerBlocks(内部块列表)、innerHTML(移除内部块后的 HTML 内容)和 innerContent(字符串片段和 null 标记的数组)。
  • 构造函数 __construct 接受五个参数来设置这些属性,确保对象正确初始化。
  • 该类自 WordPress 5.0.0 起可用,是块编辑器基础设施的关键组件。

代码示例

public function __construct( $name, $attrs, $inner_blocks, $inner_html, $inner_content ) {
    $this->blockName    = $name;
    $this->attrs        = $attrs;
    $this->innerBlocks  = $inner_blocks;
    $this->innerHTML    = $inner_html;
    $this->innerContent = $inner_content;
}

📄 原文内容

Class WP_Block_Parser_Block

Description

Holds the block structure in memory

Methods

Name Description
WP_Block_Parser_Block::__construct Constructor.

Source

class WP_Block_Parser_Block {
	/**
	 * Name of block
	 *
	 * @example "core/paragraph"
	 *
	 * @since 5.0.0
	 * @var string
	 */
	public $blockName; // phpcs:ignore WordPress.NamingConventions.ValidVariableName

	/**
	 * Optional set of attributes from block comment delimiters
	 *
	 * @example null
	 * @example array( 'columns' => 3 )
	 *
	 * @since 5.0.0
	 * @var array|null
	 */
	public $attrs;

	/**
	 * List of inner blocks (of this same class)
	 *
	 * @since 5.0.0
	 * @var WP_Block_Parser_Block[]
	 */
	public $innerBlocks; // phpcs:ignore WordPress.NamingConventions.ValidVariableName

	/**
	 * Resultant HTML from inside block comment delimiters
	 * after removing inner blocks
	 *
	 * @example "...Just <!-- wp:test /--> testing..." -> "Just testing..."
	 *
	 * @since 5.0.0
	 * @var string
	 */
	public $innerHTML; // phpcs:ignore WordPress.NamingConventions.ValidVariableName

	/**
	 * List of string fragments and null markers where inner blocks were found
	 *
	 * @example array(
	 *   'innerHTML'    => 'BeforeInnerAfter',
	 *   'innerBlocks'  => array( block, block ),
	 *   'innerContent' => array( 'Before', null, 'Inner', null, 'After' ),
	 * )
	 *
	 * @since 5.0.0
	 * @var array
	 */
	public $innerContent; // phpcs:ignore WordPress.NamingConventions.ValidVariableName

	/**
	 * Constructor.
	 *
	 * Will populate object properties from the provided arguments.
	 *
	 * @since 5.0.0
	 *
	 * @param string $name          Name of block.
	 * @param array  $attrs         Optional set of attributes from block comment delimiters.
	 * @param array  $inner_blocks  List of inner blocks (of this same class).
	 * @param string $inner_html    Resultant HTML from inside block comment delimiters after removing inner blocks.
	 * @param array  $inner_content List of string fragments and null markers where inner blocks were found.
	 */
	public function __construct( $name, $attrs, $inner_blocks, $inner_html, $inner_content ) {
		$this->blockName    = $name;          // phpcs:ignore WordPress.NamingConventions.ValidVariableName
		$this->attrs        = $attrs;
		$this->innerBlocks  = $inner_blocks;  // phpcs:ignore WordPress.NamingConventions.ValidVariableName
		$this->innerHTML    = $inner_html;    // phpcs:ignore WordPress.NamingConventions.ValidVariableName
		$this->innerContent = $inner_content; // phpcs:ignore WordPress.NamingConventions.ValidVariableName
	}
}

Changelog

Version Description
5.0.0 Introduced.