Media: fix erroneously inserting a rel attribute in get_image_send_to_editor(). Reverts most of [34259] and [34260] and adds a unit test.

Props joemcgill, azaozz.
Fixes #36084.
Built from https://develop.svn.wordpress.org/trunk@37035


git-svn-id: http://core.svn.wordpress.org/trunk@37002 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Andrew Ozz 2016-03-18 20:05:26 +00:00
parent d508fcdb51
commit d47a15ed3c
3 changed files with 17 additions and 14 deletions

View File

@ -2575,11 +2575,8 @@ function wp_ajax_send_attachment_to_editor() {
} }
} }
$rel = '';
$url = empty( $attachment['url'] ) ? '' : $attachment['url']; $url = empty( $attachment['url'] ) ? '' : $attachment['url'];
if ( strpos( $url, 'attachment_id') || get_attachment_link( $id ) == $url ) { $rel = ( strpos( $url, 'attachment_id') || get_attachment_link( $id ) == $url );
$rel = 'attachment wp-att-' . $id;
}
remove_filter( 'media_send_to_editor', 'image_media_send_to_editor' ); remove_filter( 'media_send_to_editor', 'image_media_send_to_editor' );
@ -2600,8 +2597,10 @@ function wp_ajax_send_attachment_to_editor() {
$html = stripslashes_deep( $_POST['html'] ); $html = stripslashes_deep( $_POST['html'] );
} else { } else {
$html = isset( $attachment['post_title'] ) ? $attachment['post_title'] : ''; $html = isset( $attachment['post_title'] ) ? $attachment['post_title'] : '';
$rel = $rel ? ' rel="attachment wp-att-' . $id . '"' : ''; // Hard-coded string, $id is already sanitized
if ( ! empty( $url ) ) { if ( ! empty( $url ) ) {
$html = '<a href="' . esc_url( $url ) . '"' . 'rel="' . esc_attr( $rel ) . '">' . $html . '</a>'; $html = '<a href="' . esc_url( $url ) . '"' . $rel . '">' . $html . '</a>';
} }
} }

View File

@ -111,24 +111,28 @@ function the_media_upload_tabs() {
* @param string $title Image title attribute. * @param string $title Image title attribute.
* @param string $align Image CSS alignment property. * @param string $align Image CSS alignment property.
* @param string $url Optional. Image src URL. Default empty. * @param string $url Optional. Image src URL. Default empty.
* @param string $rel Optional. Image rel attribute. Default empty. * @param bool|string $rel Optional. Value for rel attribute or whether to add a dafault value. Default false.
* @param string|array $size Optional. Image size. Accepts any valid image size, or an array of width * @param string|array $size Optional. Image size. Accepts any valid image size, or an array of width
* and height values in pixels (in that order). Default 'medium'. * and height values in pixels (in that order). Default 'medium'.
* @param string $alt Optional. Image alt attribute. Default empty. * @param string $alt Optional. Image alt attribute. Default empty.
* @return string The HTML output to insert into the editor. * @return string The HTML output to insert into the editor.
*/ */
function get_image_send_to_editor( $id, $caption, $title, $align, $url = '', $rel = '', $size = 'medium', $alt = '' ) { function get_image_send_to_editor( $id, $caption, $title, $align, $url = '', $rel = false, $size = 'medium', $alt = '' ) {
$html = get_image_tag($id, $alt, '', $align, $size); $html = get_image_tag( $id, $alt, '', $align, $size );
if ( ! $rel ) { if ( $rel ) {
$rel = ' rel="attachment wp-att-' . esc_attr( $id ) . '"'; if ( is_string( $rel ) ) {
$rel = ' rel="' . esc_attr( $rel ) . '"';
} else {
$rel = ' rel="attachment wp-att-' . intval( $id ) . '"';
}
} else { } else {
$rel = ' rel="' . esc_attr( $rel ) . '"'; $rel = '';
} }
if ( $url ) if ( $url )
$html = '<a href="' . esc_attr($url) . "\"$rel>$html</a>"; $html = '<a href="' . esc_attr( $url ) . '"' . $rel . '>' . $html . '</a>';
/** /**
* Filter the image HTML markup to send to the editor. * Filter the image HTML markup to send to the editor.
@ -1166,7 +1170,7 @@ function image_media_send_to_editor($html, $attachment_id, $attachment) {
$align = !empty($attachment['align']) ? $attachment['align'] : 'none'; $align = !empty($attachment['align']) ? $attachment['align'] : 'none';
$size = !empty($attachment['image-size']) ? $attachment['image-size'] : 'medium'; $size = !empty($attachment['image-size']) ? $attachment['image-size'] : 'medium';
$alt = !empty($attachment['image_alt']) ? $attachment['image_alt'] : ''; $alt = !empty($attachment['image_alt']) ? $attachment['image_alt'] : '';
$rel = ( $url == get_attachment_link($attachment_id) ); $rel = ( strpos( $url, 'attachment_id') || $url === get_attachment_link( $attachment_id ) );
return get_image_send_to_editor($attachment_id, $attachment['post_excerpt'], $attachment['post_title'], $align, $url, $rel, $size, $alt); return get_image_send_to_editor($attachment_id, $attachment['post_excerpt'], $attachment['post_title'], $align, $url, $rel, $size, $alt);
} }

View File

@ -4,7 +4,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '4.5-beta4-37034'; $wp_version = '4.5-beta4-37035';
/** /**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.