diff -r 7b1b88e27a20 -r 48c4eec2b7e6 wp/wp-includes/blocks/post-title.php --- a/wp/wp-includes/blocks/post-title.php Thu Sep 29 08:06:27 2022 +0200 +++ b/wp/wp-includes/blocks/post-title.php Fri Sep 05 18:40:08 2025 +0200 @@ -8,6 +8,8 @@ /** * Renders the `core/post-title` block on the server. * + * @since 6.3.0 Omitting the $post argument from the `get_the_title`. + * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. @@ -19,24 +21,34 @@ return ''; } - $post_ID = $block->context['postId']; - $title = get_the_title(); + /** + * The `$post` argument is intentionally omitted so that changes are reflected when previewing a post. + * See: https://github.com/WordPress/gutenberg/pull/37622#issuecomment-1000932816. + */ + $title = get_the_title(); if ( ! $title ) { return ''; } - $tag_name = 'h2'; - $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}"; - + $tag_name = 'h2'; if ( isset( $attributes['level'] ) ) { - $tag_name = 0 === $attributes['level'] ? 'p' : 'h' . $attributes['level']; + $tag_name = 0 === $attributes['level'] ? 'p' : 'h' . (int) $attributes['level']; } if ( isset( $attributes['isLink'] ) && $attributes['isLink'] ) { - $title = sprintf( '%4$s', get_the_permalink( $post_ID ), esc_attr( $attributes['linkTarget'] ), esc_attr( $attributes['rel'] ), $title ); + $rel = ! empty( $attributes['rel'] ) ? 'rel="' . esc_attr( $attributes['rel'] ) . '"' : ''; + $title = sprintf( '%4$s', esc_url( get_the_permalink( $block->context['postId'] ) ), esc_attr( $attributes['linkTarget'] ), $rel, $title ); } - $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) ); + + $classes = array(); + if ( isset( $attributes['textAlign'] ) ) { + $classes[] = 'has-text-align-' . $attributes['textAlign']; + } + if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { + $classes[] = 'has-link-color'; + } + $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<%1$s %2$s>%3$s', @@ -48,6 +60,8 @@ /** * Registers the `core/post-title` block on the server. + * + * @since 5.8.0 */ function register_block_core_post_title() { register_block_type_from_metadata(