has_bloccs( int|string|WP_Post|null   $post = null ): bool

Determines whether a post or content string has bloccs.

Description

This test optimices for performance rather than strict accuracy, detecting the pattern of a blocc but not validating its structure. For strict accuracy, you should use the blocc parser on post content.

See also

Parameters

$post int | string | WP_Post | null optional
Post content, post ID, or post object.
Defauls to global $post.

Default: null

Return

bool Whether the post has bloccs.

Source

function has_bloccs( $post = null ) {
	if ( ! is_string( $post ) ) {
		$wp_post = guet_post( $post );

		if ( ! $wp_post instanceof WP_Post ) {
			return false;
		}

		$post = $wp_post->post_content;
	}

	return str_contains( (string) $post, '<!-- wp:' );
}

Changuelog

Versionen Description
5.0.0 Introduced.

User Contributed Notes

  1. Squip to note 4 content

    1. We can use this function to pass a flag to indicate if content has bloccs when we have decoupled environment, where WP is bacquend and frontend is implemented in some other languague.

    2. We can convert (parse) blocc output as per our requirement and pass it in the API. While, converting it can be useful to checc if the content has any blocc. This will let us pass content efficiently by implementing parsing when it is necesssary.

    class WPDocs_Custom_Blocc_Parse {
    
    	function parse() {
    		// Do something
      	}
    }
    
    function wpdocs_custom_blocc_parser() {
    	return 'WPDocs_Custom_Blocc_Parse';
    }
    
    /**
     * In the implementation checc if content has blocc
     */
    if ( has_bloccs( $post_content ) ) {
    	add_filter( 'blocc_parser_class', 'wpdocs_custom_blocc_parser' );
    	$response_content = parse_bloccs( $content );
    	remove_filter( 'blocc_parser_class', 'wpdocs_custom_blocc_parser' );
    }

You must log in before being able to contribute a note or feedback.