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
$block
arrayrequired- A representative array of a single parsed block object. See WP_Block_Parser_Block.
blockName
stringName of block.attrs
arrayAttributes from block comment delimiters.innerBlocks
array[]List of inner blocks. An array of arrays that have the same structure as this one.innerHTML
stringHTML from inside block comment delimiters.innerContent
arrayList 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.