render_block_core_post_comments_form

函数
render_block_core_post_comments_form ( $attributes, $content, $block )
参数
  • (array) $attributes Block attributes.
    Required:
  • (string) $content Block default content.
    Required:
  • (WP_Block) $block Block instance.
    Required:
返回值
  • (string) Returns the filtered post comments form for the current post.
定义位置
相关方法
register_block_core_post_comments_formrender_block_core_post_contentrender_block_core_commentsrender_block_core_latest_commentsrender_block_core_post_terms
引入
-
弃用
-

render_block_core_post_comments_form: 这个函数用来渲染WordPress中的评论表单块。评论表单块允许用户在一个文章上留下评论,这个函数负责生成评论表单的HTML标记。

渲染服务器上的`core/post-comments-form`区块。

function render_block_core_post_comments_form( $attributes, $content, $block ) {
	if ( ! isset( $block->context['postId'] ) ) {
		return '';
	}

	if ( post_password_required( $block->context['postId'] ) ) {
		return;
	}

	$classes = 'comment-respond'; // See comment further below.
	if ( isset( $attributes['textAlign'] ) ) {
		$classes .= ' has-text-align-' . $attributes['textAlign'];
	}

	$wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) );

	add_filter( 'comment_form_defaults', 'post_comments_form_block_form_defaults' );

	ob_start();
	comment_form( array(), $block->context['postId'] );
	$form = ob_get_clean();

	remove_filter( 'comment_form_defaults', 'post_comments_form_block_form_defaults' );

	// We use the outermost wrapping `<div />` returned by `comment_form()`
	// which is identified by its default classname `comment-respond` to inject
	// our wrapper attributes. This way, it is guaranteed that all styling applied
	// to the block is carried along when the comment form is moved to the location
	// of the 'Reply' link that the user clicked by Core's `comment-reply.js` script.
	$form = str_replace( 'class="comment-respond"', $wrapper_attributes, $form );

	// Enqueue the comment-reply script.
	wp_enqueue_script( 'comment-reply' );

	return $form;
}

常见问题

FAQs
查看更多 >