render_block() – Renders a single block into a HTML string.

You appear to be a bot. Output may be restricted

Description

Renders a single block into a HTML string.

Usage

$string = render_block( $parsed_block );

Parameters

$parsed_block
( array ) required – A single parsed block object.

Returns

string String of rendered HTML.

Source

File name: wordpress/wp-includes/blocks.php
Lines:

1 to 63 of 63
function render_block( $parsed_block ) {
  global $post;
  $parent_block = null;

  
/**
 * Allows render_block() to be short-circuited, by returning a non-null value.
 *
 * @since 5.1.0
 * @since 5.9.0 The `$parent_block` parameter was added.
 *
 * @param string|null   $pre_render   The pre-rendered content. Default null.
 * @param array         $parsed_block The block being rendered.
 * @param WP_Block|null $parent_block If this is a nested block, a reference to the parent block.
 */
  $pre_render = apply_filters( 'pre_render_block', null, $parsed_block, $parent_block );
  if ( ! is_null( $pre_render ) ) {
    return $pre_render;
  }

  $source_block = $parsed_block;

  
/**
 * Filters the block being rendered in render_block(), before it's processed.
 *
 * @since 5.1.0
 * @since 5.9.0 The `$parent_block` parameter was added.
 *
 * @param array         $parsed_block The block being rendered.
 * @param array         $source_block An un-modified copy of $parsed_block, as it appeared in the source content.
 * @param WP_Block|null $parent_block If this is a nested block, a reference to the parent block.
 */
  $parsed_block = apply_filters( 'render_block_data', $parsed_block, $source_block, $parent_block );

  $context = array();

  if ( $post instanceof WP_Post ) {
    $context['postId'] = $post->ID;

    /*
		 * The `postType` context is largely unnecessary server-side, since the ID
		 * is usually sufficient on its own. That being said, since a block's
		 * manifest is expected to be shared between the server and the client,
		 * it should be included to consistently fulfill the expectation.
		 */
    $context['postType'] = $post->post_type;
  }

  
/**
 * Filters the default context provided to a rendered block.
 *
 * @since 5.5.0
 * @since 5.9.0 The `$parent_block` parameter was added.
 *
 * @param array         $context      Default context.
 * @param array         $parsed_block Block being rendered, filtered by `render_block_data`.
 * @param WP_Block|null $parent_block If this is a nested block, a reference to the parent block.
 */
  $context = apply_filters( 'render_block_context', $context, $parsed_block, $parent_block );

  $block = new WP_Block( $parsed_block, $context );

  return $block->render();
}
 

 View on GitHub View on Trac