Returns the content of a block, including comment delimiters, serializing all attributes from the given parsed block.
Description
This should be used when preparing a block to be saved to post content.
Prefer render_block when preparing a block for display. Unlike render_block, this does not evaluate a block’s render_callback, and will instead preserve the markup as parsed.
Parameters
$blockarrayrequired- An associative array of a single parsed block object. See WP_Block_Parser_Block.
blockNamestringName of block.attrsarrayAttributes from block comment delimiters.innerBlocksarray[]List of inner blocks. An array of arrays that have the same structure as this one.innerHTMLstringHTML from inside block comment delimiters.innerContentarrayList of string fragments and null markers where inner blocks were found.
Source
function serialize_block( $block ) {
$block_content = '';
$index = 0;
foreach ( $block['innerContent'] as $chunk ) {
$block_content .= is_string( $chunk ) ? $chunk : serialize_block( $block['innerBlocks'][ $index++ ] );
}
if ( ! is_array( $block['attrs'] ) ) {
$block['attrs'] = array();
}
return get_comment_delimited_block_content(
$block['blockName'],
$block['attrs'],
$block_content
);
}
Changelog
| Version | Description |
|---|---|
| 5.3.1 | Introduced. |
A sample code to understand how this works. I am using https://developer.wordpress.org/cli/commands/eval-file/ to execute this.