1<?php
2/**
3 * Server-side rendering of the `core/post-comments-count` block.
4 *
5 * @package WordPress
6 */
7
8/**
9 * Renders the `core/post-comments-count` block on the server.
10 *
11 * @since 6.9.0
12 *
13 * @param array $attributes Block attributes.
14 * @param string $content Block default content.
15 * @param WP_Block $block Block instance.
16 * @return string Returns the filtered post comments count for the current post.
17 */
18function render_block_core_post_comments_count( $attributes, $content, $block ) {
19 if ( ! isset( $block->context['postId'] ) ) {
20 return '';
21 }
22
23 $classes = '';
24 if ( isset( $attributes['textAlign'] ) ) {
25 $classes .= 'has-text-align-' . $attributes['textAlign'];
26 }
27
28 $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) );
29 return sprintf(
30 '<div %1$s>%2$s</div>',
31 $wrapper_attributes,
32 get_comments_number( $block->context['postId'] )
33 );
34}
35
36/**
37 * Registers the `core/post-comments-count` block on the server.
38 *
39 * @since 6.9.0
40 */
41function register_block_core_post_comments_count() {
42 register_block_type_from_metadata(
43 __DIR__ . '/post-comments-count',
44 array(
45 'render_callback' => 'render_block_core_post_comments_count',
46 )
47 );
48}
49add_action( 'init', 'register_block_core_post_comments_count' );
50