has_block()
Determine whether a $post or a string contains a specific block type.
This test optimizes for performance rather than strict accuracy, detecting whether the block type exists but not validating its structure and not checking synced patterns (formerly called reusable blocks). For strict accuracy, you should use the block parser on post content.
Uses: has_blocks()
1 time — 0.000001 sec (speed of light) | 50000 times — 0.02 sec (speed of light) | PHP 7.3.20, WP 5.5.1
No Hooks.
Return
true|false
. Whether the post content contains the specified block.
Usage
has_block( $block_name, $post );
- $block_name(string) (required)
- Full block type to look for.
- $post(int|string|WP_Post|null)
- Post content, post ID, or post object.
Default: global $post
Examples
#1 Does (string) contain a gallery block
$string= '<!-- wp:gallery {"ids" : [123, 456, 789 ]} -->'; // print true if( has_block( 'gallery', $string ) ){ // (string) contains a gallery block }
#2 Does the post content contain a gallery block
// Checking the presence of the gutenberg block in the post content if( has_block('gallery' , 1234 ) ){ // the post with ID 1234 contains a gallery block }
Notes
- See: parse_blocks()
Changelog
Since 5.0.0 | Introduced. |