rebase on oct-10-2023
This commit is contained in:
@@ -34,6 +34,8 @@ function block_core_post_template_uses_featured_image( $inner_blocks ) {
|
||||
/**
|
||||
* Renders the `core/post-template` block on the server.
|
||||
*
|
||||
* @since 6.3.0 Changed render_block_context priority to `1`.
|
||||
*
|
||||
* @param array $attributes Block attributes.
|
||||
* @param string $content Block default content.
|
||||
* @param WP_Block $block Block instance.
|
||||
@@ -72,6 +74,11 @@ function render_block_core_post_template( $attributes, $content, $block ) {
|
||||
$classnames .= ' has-link-color';
|
||||
}
|
||||
|
||||
// Ensure backwards compatibility by flagging the number of columns via classname when using grid layout.
|
||||
if ( isset( $attributes['layout']['type'] ) && 'grid' === $attributes['layout']['type'] && ! empty( $attributes['layout']['columnCount'] ) ) {
|
||||
$classnames .= ' ' . sanitize_title( 'columns-' . $attributes['layout']['columnCount'] );
|
||||
}
|
||||
|
||||
$wrapper_attributes = get_block_wrapper_attributes( array( 'class' => trim( $classnames ) ) );
|
||||
|
||||
$content = '';
|
||||
@@ -85,17 +92,20 @@ function render_block_core_post_template( $attributes, $content, $block ) {
|
||||
// This ensures that for the inner instances of the Post Template block, we do not render any block supports.
|
||||
$block_instance['blockName'] = 'core/null';
|
||||
|
||||
$post_id = get_the_ID();
|
||||
$post_type = get_post_type();
|
||||
$filter_block_context = static function( $context ) use ( $post_id, $post_type ) {
|
||||
$context['postType'] = $post_type;
|
||||
$context['postId'] = $post_id;
|
||||
return $context;
|
||||
};
|
||||
|
||||
// Use an early priority to so that other 'render_block_context' filters have access to the values.
|
||||
add_filter( 'render_block_context', $filter_block_context, 1 );
|
||||
// Render the inner blocks of the Post Template block with `dynamic` set to `false` to prevent calling
|
||||
// `render_callback` and ensure that no wrapper markup is included.
|
||||
$block_content = (
|
||||
new WP_Block(
|
||||
$block_instance,
|
||||
array(
|
||||
'postType' => get_post_type(),
|
||||
'postId' => get_the_ID(),
|
||||
)
|
||||
)
|
||||
)->render( array( 'dynamic' => false ) );
|
||||
$block_content = ( new WP_Block( $block_instance ) )->render( array( 'dynamic' => false ) );
|
||||
remove_filter( 'render_block_context', $filter_block_context, 1 );
|
||||
|
||||
// Wrap the render inner blocks in a `li` element with the appropriate post classes.
|
||||
$post_classes = implode( ' ', get_post_class( 'wp-block-post' ) );
|
||||
|
||||
Reference in New Issue
Block a user