Parses blocks out of a content string.
Parameters
$content
stringrequired- Post content.
Source
function parse_blocks( $content ) {
/**
* Filter to allow plugins to replace the server-side block parser.
*
* @since 5.0.0
*
* @param string $parser_class Name of block parser class.
*/
$parser_class = apply_filters( 'block_parser_class', 'WP_Block_Parser' );
$parser = new $parser_class();
return $parser->parse( $content );
}
Hooks
- apply_filters( ‘block_parser_class’,
string $parser_class ) Filter to allow plugins to replace the server-side block parser.
Changelog
Version | Description |
---|---|
5.0.0 | Introduced. |
Example using
parse_blocks()
to display a block from a postPlace within The Loop
If used in The Loop it renders the first YouTube video embedded within a post. Can be used with other blocks by assigning their blockName.
Use serialize_blocks() to convert the parsed block back to content.
Example of returned array for a Paragraph block:
As of Gutenberg 7.7, for this input:
the output of
parse_blocks
will be:In case you wish to check if current post content is Gutenberg-blocks or using Classic editor:
If post content is Classic Editor, it has only one block, but
blockName
is empty.$fullContent = get_the_content( $pid ); if ( has_blocks( $fullContent ) ) { doit(); }
orif ( has_blocks( $post ) ) { doit(); }