diff --git a/wp-admin/users.php b/wp-admin/users.php index 4f15efbbc8..4951a7e9bf 100644 --- a/wp-admin/users.php +++ b/wp-admin/users.php @@ -34,7 +34,7 @@ get_current_screen()->add_help_tab( 'title' => __( 'Overview' ), 'content' => '

' . __( 'This screen lists all the existing users for your site. Each user has one of five defined roles as set by the site admin: Site Administrator, Editor, Author, Contributor, or Subscriber. Users with roles other than Administrator will see fewer options in the dashboard navigation when they are logged in, based on their role.' ) . '

' . '

' . __( 'To add a new user for your site, click the Add New User button at the top of the screen or Add New User in the Users menu section.' ) . '

', - ) + ) ); get_current_screen()->add_help_tab( diff --git a/wp-includes/blocks/media-text.php b/wp-includes/blocks/media-text.php index f828aed645..87be164a04 100644 --- a/wp-includes/blocks/media-text.php +++ b/wp-includes/blocks/media-text.php @@ -29,28 +29,78 @@ function render_block_core_media_text( $attributes, $content ) { return $content; } - $image_tag = '
'; - $content = preg_replace( '//', $image_tag, $content ); + $media_tag_processor = new WP_HTML_Tag_Processor( $content ); + $wrapping_figure_query = array( + 'tag_name' => 'figure', + 'class_name' => 'wp-block-media-text__media', + ); + $has_media_on_right = isset( $attributes['mediaPosition'] ) && 'right' === $attributes['mediaPosition']; + $image_fill = isset( $attributes['imageFill'] ) && $attributes['imageFill']; + $focal_point = isset( $attributes['focalPoint'] ) ? round( $attributes['focalPoint']['x'] * 100 ) . '% ' . round( $attributes['focalPoint']['y'] * 100 ) . '%' : '50% 50%'; + $unique_id = 'wp-block-media-text__media-' . wp_unique_id(); - $processor = new WP_HTML_Tag_Processor( $content ); - if ( isset( $attributes['imageFill'] ) && $attributes['imageFill'] ) { - $position = '50% 50%'; - if ( isset( $attributes['focalPoint'] ) ) { - $position = round( $attributes['focalPoint']['x'] * 100 ) . '% ' . round( $attributes['focalPoint']['y'] * 100 ) . '%'; + if ( $has_media_on_right ) { + // Loop through all the figure tags and set a bookmark on the last figure tag. + while ( $media_tag_processor->next_tag( $wrapping_figure_query ) ) { + $media_tag_processor->set_bookmark( 'last_figure' ); + } + if ( $media_tag_processor->has_bookmark( 'last_figure' ) ) { + $media_tag_processor->seek( 'last_figure' ); + if ( $image_fill ) { + $media_tag_processor->set_attribute( 'style', 'background-image:url(' . esc_url( $current_featured_image ) . ');background-position:' . $focal_point . ';' ); + } else { + // Insert a unique ID to identify the figure tag. + $media_tag_processor->set_attribute( 'id', $unique_id ); + } + } + } else { + if ( $media_tag_processor->next_tag( $wrapping_figure_query ) ) { + if ( $image_fill ) { + $media_tag_processor->set_attribute( 'style', 'background-image:url(' . esc_url( $current_featured_image ) . ');background-position:' . $focal_point . ';' ); + } else { + // Insert a unique ID to identify the figure tag. + $media_tag_processor->set_attribute( 'id', $unique_id ); + } } - $processor->next_tag( 'figure' ); - $processor->set_attribute( 'style', 'background-image:url(' . esc_url( $current_featured_image ) . ');background-position:' . $position . ';' ); } - $processor->next_tag( 'img' ); - $media_size_slug = 'full'; - if ( isset( $attributes['mediaSizeSlug'] ) ) { - $media_size_slug = $attributes['mediaSizeSlug']; - } - $processor->set_attribute( 'src', esc_url( $current_featured_image ) ); - $processor->set_attribute( 'class', 'wp-image-' . get_post_thumbnail_id() . ' size-' . $media_size_slug ); - $processor->set_attribute( 'alt', trim( strip_tags( get_post_meta( get_post_thumbnail_id(), '_wp_attachment_image_alt', true ) ) ) ); - $content = $processor->get_updated_html(); + $content = $media_tag_processor->get_updated_html(); + + // If the image is not set to fill, add the image tag inside the figure tag, + // and update the image attributes in order to display the featured image. + if ( ! $image_fill ) { + $media_size_slug = isset( $attributes['mediaSizeSlug'] ) ? $attributes['mediaSizeSlug'] : 'full'; + $image_tag = ''; + $content = preg_replace( + '/()/', + '$1' . $image_tag, + $content + ); + + $image_tag_processor = new WP_HTML_Tag_Processor( $content ); + if ( $image_tag_processor->next_tag( + array( + 'tag_name' => 'figure', + 'id' => $unique_id, + ) + ) ) { + // The ID is only used to ensure that the correct figure tag is selected, + // and can now be removed. + $image_tag_processor->remove_attribute( 'id' ); + if ( $image_tag_processor->next_tag( + array( + 'tag_name' => 'img', + 'class_name' => 'wp-block-media-text__featured_image', + ) + ) ) { + $image_tag_processor->set_attribute( 'src', esc_url( $current_featured_image ) ); + $image_tag_processor->set_attribute( 'class', 'wp-image-' . get_post_thumbnail_id() . ' size-' . $media_size_slug ); + $image_tag_processor->set_attribute( 'alt', trim( strip_tags( get_post_meta( get_post_thumbnail_id(), '_wp_attachment_image_alt', true ) ) ) ); + + $content = $image_tag_processor->get_updated_html(); + } + } + } return $content; } diff --git a/wp-includes/version.php b/wp-includes/version.php index 913051bfef..7c4058f2ab 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.6-beta4-58565'; +$wp_version = '6.6-beta4-58566'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.