block_core_comment_template_render_comments

函数
block_core_comment_template_render_comments ( $comments, $block )
参数
  • (WP_Comment[]) $comments The array of comments.
    Required:
  • (WP_Block) $block Block instance.
    Required:
返回值
  • (string)
定义位置
相关方法
render_block_core_comment_templateregister_block_core_comment_templateblock_core_post_template_uses_featured_imagerender_block_core_comment_contentrender_block_core_comment_author_name
引入
-
弃用
-

block_core_comment_template_render_comments: 这个函数用来渲染一个块的评论模板。它接收一个评论数据的数组作为参数。

递归渲染嵌套评论列表的函数。

function block_core_comment_template_render_comments( $comments, $block ) {
	global $comment_depth;
	$thread_comments       = get_option( 'thread_comments' );
	$thread_comments_depth = get_option( 'thread_comments_depth' );

	if ( empty( $comment_depth ) ) {
		$comment_depth = 1;
	}

	$content = '';
	foreach ( $comments as $comment ) {

		$block_content = ( new WP_Block(
			$block->parsed_block,
			array(
				'commentId' => $comment->comment_ID,
			)
		) )->render( array( 'dynamic' => false ) );

		$children = $comment->get_children();

		/*
		 * We need to create the CSS classes BEFORE recursing into the children.
		 * This is because comment_class() uses globals like `$comment_alt`
		 * and `$comment_thread_alt` which are order-sensitive.
		 *
		 * The `false` parameter at the end means that we do NOT want the function
		 * to `echo` the output but to return a string.
		 * See https://developer.wordpress.org/reference/functions/comment_class/#parameters.
		 */
		$comment_classes = comment_class( '', $comment->comment_ID, $comment->comment_post_ID, false );

		// If the comment has children, recurse to create the HTML for the nested
		// comments.
		if ( ! empty( $children ) && ! empty( $thread_comments ) ) {
			if ( $comment_depth < $thread_comments_depth ) {
				$comment_depth += 1;
				$inner_content  = block_core_comment_template_render_comments(
					$children,
					$block
				);
				$block_content .= sprintf( '<ol>%1$s</ol>', $inner_content );
				$comment_depth -= 1;
			} else {
				$inner_content  = block_core_comment_template_render_comments(
					$children,
					$block
				);
				$block_content .= sprintf( $inner_content );
			}
		}

		$content .= sprintf( '<li id="comment-%1$s" %2$s>%3$s</li>', $comment->comment_ID, $comment_classes, $block_content );
	}

	return $content;

}

常见问题

FAQs
查看更多 >