Feeds: Ensure that galleries can be output as a list of links in feeds.

Adjusts the gallery shortcode handler to check for the `link` attribute when outputting to a feed.

Fixes #22101.

Props ifrins, mdgl, SergeyBiryukov, chriscct7, stevenkword, iworks, DrewAPicture, birgire, whyisjake.


git-svn-id: https://develop.svn.wordpress.org/trunk@48496 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Jake Spurlock 2020-07-16 21:29:05 +00:00
parent 0fa4801a88
commit ceccb7b3b1
2 changed files with 45 additions and 1 deletions

View File

@ -2250,7 +2250,16 @@ function gallery_shortcode( $attr ) {
if ( is_feed() ) {
$output = "\n";
foreach ( $attachments as $att_id => $attachment ) {
$output .= wp_get_attachment_link( $att_id, $atts['size'], true ) . "\n";
if ( ! empty( $atts['link'] ) ) {
if ( 'none' === $atts['link'] ) {
$output .= wp_get_attachment_image( $att_id, $atts['size'], false, $attr );
} else {
$output .= wp_get_attachment_link( $att_id, $atts['size'], false );
}
} else {
$output .= wp_get_attachment_link( $att_id, $atts['size'], true );
}
$output .= "\n";
}
return $output;
}

View File

@ -2946,6 +2946,41 @@ EOF;
$this->assertTrue( wp_image_file_matches_image_meta( $image_src, $image_meta ) );
}
/**
* @ticket 22101
*/
function test_gallery_shortcode_when_is_feed_true() {
$this->go_to( '/?feed=rss2' );
// Default: Links to image attachment page url
$actual = gallery_shortcode(
array(
'ids' => self::$large_id,
)
);
$this->assertContains( '?attachment_id=', $actual );
// File: Links to image file url
$actual = gallery_shortcode(
array(
'ids' => self::$large_id,
'link' => 'file',
)
);
$this->assertTrue( 2 === substr_count( $actual, '.jpg' ) );
// None: Does not link
$actual = gallery_shortcode(
array(
'ids' => self::$large_id,
'link' => 'none',
)
);
$this->assertFalse( strpos( $actual, '<a ' ) );
}
}
/**