1<?php
2/**
3 * Server-side rendering of the `core/comments-pagination` block.
4 *
5 * @package WordPress
6 */
7
8/**
9 * Renders the `core/comments-pagination` block on the server.
10 *
11 * @since 6.0.0
12 *
13 * @param array $attributes Block attributes.
14 * @param string $content Block default content.
15 *
16 * @return string Returns the wrapper for the Comments pagination.
17 */
18function render_block_core_comments_pagination( $attributes, $content ) {
19 if ( empty( trim( $content ) ) ) {
20 return '';
21 }
22
23 if ( post_password_required() ) {
24 return;
25 }
26
27 $classes = ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) ? 'has-link-color' : '';
28 $wrapper_attributes = get_block_wrapper_attributes(
29 array(
30 'aria-label' => __( 'Comments pagination' ),
31 'class' => $classes,
32 )
33 );
34
35 return sprintf(
36 '<nav %1$s>%2$s</nav>',
37 $wrapper_attributes,
38 $content
39 );
40}
41
42/**
43 * Registers the `core/comments-pagination` block on the server.
44 *
45 * @since 6.0.0
46 */
47function register_block_core_comments_pagination() {
48 register_block_type_from_metadata(
49 __DIR__ . '/comments-pagination',
50 array(
51 'render_callback' => 'render_block_core_comments_pagination',
52 )
53 );
54}
55add_action( 'init', 'register_block_core_comments_pagination' );
56