render_block_core_post_comments

The timeline below displays how wordpress function render_block_core_post_comments has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 5.9

/**
 * Server-side rendering of the `core/post-comments` block.
 *
 * @package WordPress
 */
/**
 * Renders the `core/post-comments` block on the server.
 *
 * @param array    $attributes Block attributes.
 * @param string   $content    Block default content.
 * @param WP_Block $block      Block instance.
 * @return string Returns the filtered post comments for the current post wrapped inside "p" tags.
 */
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);
}