has_block( string $block_type, int|string|WP_Post|null $post = null )
Determine whether a $post or a string contains a specific block type.
Contents
Description Description
This test optimizes for performance rather than strict accuracy, detecting the block type exists but not validating its structure. For strict accuracy, you should use the block parser on post content.
See also See also
Parameters Parameters
- $block_type
-
(string) (Required) Full Block type to look for.
- $post
-
(int|string|WP_Post|null) (Optional) Post content, post ID, or post object. Defaults to global $post.
Default value: null
Return Return
(bool) Whether the post content contains the specified block.
Source Source
File: wp-includes/blocks.php
function has_block( $block_type, $post = null ) {
if ( ! has_blocks( $post ) ) {
return false;
}
if ( ! is_string( $post ) ) {
$wp_post = get_post( $post );
if ( $wp_post instanceof WP_Post ) {
$post = $wp_post->post_content;
}
}
return false !== strpos( $post, '<!-- wp:' . $block_type . ' ' );
}
Expand full source code Collapse full source code View on Trac
Changelog Changelog
| Version | Description |
|---|---|
| 5.0.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
// Note: does not support arrays if ( has_block( array( 'gallery', 'button' ) ) ) { // error } // Use || instead if ( has_block( 'gallery' ) || has_block( 'button' ) ) { // Do something. }if ( has_block( 'gallery' ) ) { // Do something. }