The parse_blocks() WordPress PHP function parses blocks out of a content string.
Usage
$blocks = parse_blocks($content);
Parameters
$content (string)
– Required. The post content to parse.
More information
See WordPress Developer Resources: parse_blocks()
Examples
Display First YouTube Block in a Post
This example shows how to display the first YouTube block found in a post.
function display_first_youtube_block() { global $post; $blocks = parse_blocks($post->post_content); foreach ($blocks as $block) { if ('core-embed/youtube' === $block['blockName']) { echo apply_filters('the_content', render_block($block)); break; } } }
Check if Post has a Specific Block
This example checks if a post has a specific block, such as the core/paragraph
block.
function has_specific_block($block_name) { global $post; $blocks = parse_blocks($post->post_content); foreach ($blocks as $block) { if ($block_name === $block['blockName']) { return true; } } return false; }
Count the Number of Blocks in a Post
This example counts the number of blocks in a post.
function count_blocks() { global $post; $blocks = parse_blocks($post->post_content); return count($blocks); }
Get the First Block of a Specific Type
This example retrieves the first block of a specific type, like the core/image
block.
function get_first_block_of_type($block_name) { global $post; $blocks = parse_blocks($post->post_content); foreach ($blocks as $block) { if ($block_name === $block['blockName']) { return $block; } } return null; }
Extract All Blocks of a Specific Type
This example extracts all blocks of a specific type, like the core/quote
block.
function get_all_blocks_of_type($block_name) { global $post; $blocks = parse_blocks($post->post_content); $filtered_blocks = array(); foreach ($blocks as $block) { if ($block_name === $block['blockName']) { $filtered_blocks[] = $block; } } return $filtered_blocks; }