函数文档

wp_get_first_block()

💡 云策文档标注

概述

wp_get_first_block() 函数用于在块数组中查找指定名称的第一个块,支持递归搜索内部块。

关键要点

  • 参数:$blocks(必需,块数组)和 $block_name(必需,要查找的块名称)。
  • 返回值:找到的块数组,若未找到则返回空数组。
  • 函数递归遍历块数组,包括内部块(innerBlocks),以匹配块名称。

代码示例

function wp_get_first_block( $blocks, $block_name ) {
	foreach ( $blocks as $block ) {
		if ( $block_name === $block['blockName'] ) {
			return $block;
		}
		if ( ! empty( $block['innerBlocks'] ) ) {
			$found_block = wp_get_first_block( $block['innerBlocks'], $block_name );

			if ( ! empty( $found_block ) ) {
				return $found_block;
			}
		}
	}

	return array();
}

注意事项

  • 该函数从 WordPress 6.3.0 版本引入,位于 wp-includes/block-editor.php 文件中。
  • 相关用途包括 wp_get_post_content_block_attributes() 函数,用于从当前文章模板检索 Post Content 块属性。

📄 原文内容

Finds the first occurrence of a specific block in an array of blocks.

Parameters

$blocksarrayrequired
Array of blocks.
$block_namestringrequired
Name of the block to find.

Return

array Found block, or empty array if none found.

Source

function wp_get_first_block( $blocks, $block_name ) {
	foreach ( $blocks as $block ) {
		if ( $block_name === $block['blockName'] ) {
			return $block;
		}
		if ( ! empty( $block['innerBlocks'] ) ) {
			$found_block = wp_get_first_block( $block['innerBlocks'], $block_name );

			if ( ! empty( $found_block ) ) {
				return $found_block;
			}
		}
	}

	return array();
}

Changelog

Version Description
6.3.0 Introduced.