From 72d12b514de3700aa81cd8919926166566429de5 Mon Sep 17 00:00:00 2001 From: Scott Taylor Date: Thu, 16 Oct 2014 04:28:17 +0000 Subject: [PATCH] Add a 6th (!) attribute to `wp_get_attachment_link()` to allow `aria-describedby` to be added to gallery output. Props joedolson, DrewAPicture, rianrietveld. Fixes #27402. Built from https://develop.svn.wordpress.org/trunk@29914 git-svn-id: http://core.svn.wordpress.org/trunk@29667 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/media.php | 10 ++++++---- wp-includes/post-template.php | 12 +++++++----- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/wp-includes/media.php b/wp-includes/media.php index 8dbb098766..bbfdf4673a 100644 --- a/wp-includes/media.php +++ b/wp-includes/media.php @@ -1056,12 +1056,14 @@ function gallery_shortcode( $attr ) { $i = 0; foreach ( $attachments as $id => $attachment ) { + + $attr = ( trim( $attachment->post_excerpt ) ) ? array( 'aria-describedby' => "$selector-$id" ) : ''; if ( ! empty( $atts['link'] ) && 'file' === $atts['link'] ) { - $image_output = wp_get_attachment_link( $id, $atts['size'], false, false ); + $image_output = wp_get_attachment_link( $id, $atts['size'], false, false, $attr ); } elseif ( ! empty( $atts['link'] ) && 'none' === $atts['link'] ) { - $image_output = wp_get_attachment_image( $id, $atts['size'], false ); + $image_output = wp_get_attachment_image( $id, $atts['size'], false, $attr ); } else { - $image_output = wp_get_attachment_link( $id, $atts['size'], true, false ); + $image_output = wp_get_attachment_link( $id, $atts['size'], true, false, false, $attr ); } $image_meta = wp_get_attachment_metadata( $id ); @@ -1076,7 +1078,7 @@ function gallery_shortcode( $attr ) { "; if ( $captiontag && trim($attachment->post_excerpt) ) { $output .= " - <{$captiontag} class='wp-caption-text gallery-caption'> + <{$captiontag} class='wp-caption-text gallery-caption' id='$selector-$id'> " . wptexturize($attachment->post_excerpt) . " "; } diff --git a/wp-includes/post-template.php b/wp-includes/post-template.php index c736e3167d..fab9e3cc7f 100644 --- a/wp-includes/post-template.php +++ b/wp-includes/post-template.php @@ -1462,9 +1462,10 @@ function the_attachment_link( $id = 0, $fullsize = false, $deprecated = false, $ * @param bool $permalink Optional, default is false. Whether to add permalink to image. * @param bool $icon Optional, default is false. Whether to include icon. * @param string|bool $text Optional, default is false. If string, then will be link text. + * @param array|string $attr Optional. Array or string of attributes. * @return string HTML content. */ -function wp_get_attachment_link( $id = 0, $size = 'thumbnail', $permalink = false, $icon = false, $text = false ) { +function wp_get_attachment_link( $id = 0, $size = 'thumbnail', $permalink = false, $icon = false, $text = false, $attr = '' ) { $id = intval( $id ); $_post = get_post( $id ); @@ -1474,12 +1475,13 @@ function wp_get_attachment_link( $id = 0, $size = 'thumbnail', $permalink = fals if ( $permalink ) $url = get_attachment_link( $_post->ID ); - if ( $text ) + if ( $text ) { $link_text = $text; - elseif ( $size && 'none' != $size ) - $link_text = wp_get_attachment_image( $id, $size, $icon ); - else + } elseif ( $size && 'none' != $size ) { + $link_text = wp_get_attachment_image( $id, $size, $icon, $attr ); + } else { $link_text = ''; + } if ( trim( $link_text ) == '' ) $link_text = $_post->post_title;