diff --git a/wp-admin/includes/media.php b/wp-admin/includes/media.php index 16b2052a36..41c0a31ac7 100644 --- a/wp-admin/includes/media.php +++ b/wp-admin/includes/media.php @@ -3212,7 +3212,7 @@ function edit_form_image_editor( $post ) { ?> - post_content, 'attachment_content', $editor_args ); ?> + post_content ), 'attachment_content', $editor_args ); ?> - get( 'Name' ) ? $broken_theme->display( 'Name' ) : $broken_theme->get_stylesheet(); ?> + get( 'Name' ) ? $broken_theme->display( 'Name' ) : esc_html( $broken_theme->get_stylesheet() ); ?> errors()->get_error_message(); ?> {$list_items}"; + $list_items_markup = sprintf( "", esc_attr( $class ), $list_items ); // PHP 5.2 compatibility. See: http://simplepie.org/wiki/faq/i_m_getting_memory_leaks. $rss->__destruct(); diff --git a/wp-includes/blocks/search.php b/wp-includes/blocks/search.php index 6cd909fc6f..c50b69a441 100644 --- a/wp-includes/blocks/search.php +++ b/wp-includes/blocks/search.php @@ -52,7 +52,7 @@ function render_block_core_search( $attributes ) { return sprintf( '', - $class, + esc_attr( $class ), esc_url( home_url( '/' ) ), $label_markup . $input_markup . $button_markup ); diff --git a/wp-includes/comment-template.php b/wp-includes/comment-template.php index 4df077b36c..4d809b3ddd 100644 --- a/wp-includes/comment-template.php +++ b/wp-includes/comment-template.php @@ -593,8 +593,13 @@ function comment_date( $d = '', $comment_ID = 0 ) { * @return string The possibly truncated comment excerpt. */ function get_comment_excerpt( $comment_ID = 0 ) { - $comment = get_comment( $comment_ID ); - $comment_text = strip_tags( str_replace( array( "\n", "\r" ), ' ', $comment->comment_content ) ); + $comment = get_comment( $comment_ID ); + + if ( ! post_password_required( $comment->comment_post_ID ) ) { + $comment_text = strip_tags( str_replace( array( "\n", "\r" ), ' ', $comment->comment_content ) ); + } else { + $comment_text = __( 'Password protected' ); + } /* translators: Maximum number of words used in a comment excerpt. */ $comment_excerpt_length = intval( _x( '20', 'comment_excerpt_length' ) ); diff --git a/wp-includes/default-filters.php b/wp-includes/default-filters.php index 50e66c15ef..ea3bcf77ca 100644 --- a/wp-includes/default-filters.php +++ b/wp-includes/default-filters.php @@ -574,8 +574,8 @@ add_filter( 'the_excerpt_embed', 'wpautop' ); add_filter( 'the_excerpt_embed', 'shortcode_unautop' ); add_filter( 'the_excerpt_embed', 'wp_embed_excerpt_attachment' ); +add_filter( 'oembed_dataparse', 'wp_filter_oembed_iframe_title_attribute', 5, 3 ); add_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10, 3 ); -add_filter( 'oembed_dataparse', 'wp_filter_oembed_iframe_title_attribute', 20, 3 ); add_filter( 'oembed_response_data', 'get_oembed_response_data_rich', 10, 4 ); add_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10, 3 ); diff --git a/wp-includes/embed.php b/wp-includes/embed.php index 62e59d04e2..7808c9961d 100644 --- a/wp-includes/embed.php +++ b/wp-includes/embed.php @@ -797,11 +797,24 @@ function wp_filter_oembed_iframe_title_attribute( $result, $data, $url ) { $title = ! empty( $data->title ) ? $data->title : ''; - $pattern = '`]*?title=(\\\\\'|\\\\"|[\'"])([^>]*?)\1`i'; - $has_title_attr = preg_match( $pattern, $result, $matches ); + $pattern = '`]*)>`i'; + if ( preg_match( $pattern, $result, $matches ) ) { + $attrs = wp_kses_hair( $matches[1], wp_allowed_protocols() ); - if ( $has_title_attr && ! empty( $matches[2] ) ) { - $title = $matches[2]; + foreach ( $attrs as $attr => $item ) { + $lower_attr = strtolower( $attr ); + if ( $lower_attr === $attr ) { + continue; + } + if ( ! isset( $attrs[ $lower_attr ] ) ) { + $attrs[ $lower_attr ] = $item; + unset( $attrs[ $attr ] ); + } + } + } + + if ( ! empty( $attrs['title']['value'] ) ) { + $title = $attrs['title']['value']; } /** @@ -820,11 +833,11 @@ function wp_filter_oembed_iframe_title_attribute( $result, $data, $url ) { return $result; } - if ( $has_title_attr ) { - // Remove the old title, $matches[1]: quote, $matches[2]: title attribute value. - $result = str_replace( ' title=' . $matches[1] . $matches[2] . $matches[1], '', $result ); + if ( isset( $attrs['title'] ) ) { + unset( $attrs['title'] ); + $attr_string = join( ' ', wp_list_pluck( $attrs, 'whole' ) ); + $result = str_replace( $matches[0], '