WordPress Version: 6.1
/**
* Renders the `core/comment-template` 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 HTML representing the comments using the layout
* defined by the block's inner blocks.
*/
function render_block_core_comment_template($attributes, $content, $block)
{
// Bail out early if the post ID is not set for some reason.
if (empty($block->context['postId'])) {
return '';
}
if (post_password_required($block->context['postId'])) {
return;
}
$comment_query = new WP_Comment_Query(build_comment_query_vars_from_block($block));
// Get an array of comments for the current post.
$comments = $comment_query->get_comments();
if (count($comments) === 0) {
return '';
}
$comment_order = get_option('comment_order');
if ('desc' === $comment_order) {
$comments = array_reverse($comments);
}
$wrapper_attributes = get_block_wrapper_attributes();
return sprintf('<ol %1$s>%2$s</ol>', $wrapper_attributes, block_core_comment_template_render_comments($comments, $block));
}