diff -r 7b1b88e27a20 -r 48c4eec2b7e6 wp/wp-includes/blocks/read-more.php --- a/wp/wp-includes/blocks/read-more.php Thu Sep 29 08:06:27 2022 +0200 +++ b/wp/wp-includes/blocks/read-more.php Fri Sep 05 18:40:08 2025 +0200 @@ -8,6 +8,8 @@ /** * Renders the `core/read-more` block on the server. * + * @since 6.0.0 + * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. @@ -18,21 +20,37 @@ return ''; } - $post_ID = $block->context['postId']; + $post_ID = $block->context['postId']; + $post_title = get_the_title( $post_ID ); + if ( '' === $post_title ) { + $post_title = sprintf( + /* translators: %s is post ID to describe the link for screen readers. */ + __( 'untitled post %s' ), + $post_ID + ); + } + $screen_reader_text = sprintf( + /* translators: %s is either the post title or post ID to describe the link for screen readers. */ + __( ': %s' ), + $post_title + ); $justify_class_name = empty( $attributes['justifyContent'] ) ? '' : "is-justified-{$attributes['justifyContent']}"; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $justify_class_name ) ); $more_text = ! empty( $attributes['content'] ) ? wp_kses_post( $attributes['content'] ) : __( 'Read more' ); return sprintf( - '%4s', + '%4s%5s', $wrapper_attributes, get_the_permalink( $post_ID ), esc_attr( $attributes['linkTarget'] ), - $more_text + $more_text, + $screen_reader_text ); } /** * Registers the `core/read-more` block on the server. + * + * @since 6.0.0 */ function register_block_core_read_more() { register_block_type_from_metadata(