wpseek.com
A WordPress-centric search engine for devs and theme authors



render_block_core_post_comments › WordPress Function

Sincen/a
Deprecatedn/a
render_block_core_post_comments ( $attributes, $content, $block )
Parameters: (3)
  • (array) $attributes Block attributes.
    Required: Yes
  • (string) $content Block default content.
    Required: Yes
  • (WP_Block) $block Block instance.
    Required: Yes
Returns:
  • (string) Returns the filtered post comments for the current post wrapped inside "p" tags.
Defined at:
Codex:

Renders the `core/post-comments` block on the server.



Source

function render_block_core_post_comments( $attributes, $content, $block ) {
	global $post;

	$post_id = $block->context['postId'];
	if ( ! isset( $post_id ) ) {
		return '';
	}

	$comment_args = array(
		'post_id' => $post_id,
		'count'   => true,
	);
	// Return early if there are no comments and comments are closed.
	if ( ! comments_open( $post_id ) && get_comments( $comment_args ) === 0 ) {
		return '';
	}

	$post_before = $post;
	$post        = get_post( $post_id );
	setup_postdata( $post );

	ob_start();
	// There's a deprecation warning generated by WP Core.
	// Ideally this deprecation is removed from Core.
	// In the meantime, this removes it from the output.
	add_filter( 'deprecated_file_trigger_error', '__return_false' );
	comments_template();
	remove_filter( 'deprecated_file_trigger_error', '__return_false' );
	$post = $post_before;

	$classes = '';
	if ( isset( $attributes['textAlign'] ) ) {
		$classes .= 'has-text-align-' . $attributes['textAlign'];
	}

	$wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) );
	$output             = ob_get_clean();

	return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $output );
}