diff --git a/wp-includes/media.php b/wp-includes/media.php index 5f10503863..7a6d79acff 100644 --- a/wp-includes/media.php +++ b/wp-includes/media.php @@ -3681,19 +3681,33 @@ function get_post_galleries( $post, $html = true ) { if ( 'gallery' === $shortcode[2] ) { $srcs = array(); + $shortcode_attrs = shortcode_parse_atts( $shortcode[3] ); + if ( ! is_array( $shortcode_attrs ) ) { + $shortcode_attrs = array(); + } + + // Specify the post id of the gallery we're viewing if the shortcode doesn't reference another post already. + if ( ! isset( $shortcode_attrs['id'] ) ) { + $shortcode[3] .= ' id="' . intval( $post->ID ) . '"'; + } + $gallery = do_shortcode_tag( $shortcode ); if ( $html ) { $galleries[] = $gallery; } else { preg_match_all( '#src=([\'"])(.+?)\1#is', $gallery, $src, PREG_SET_ORDER ); if ( ! empty( $src ) ) { - foreach ( $src as $s ) + foreach ( $src as $s ) { $srcs[] = $s[2]; + } } - $data = shortcode_parse_atts( $shortcode[3] ); - $data['src'] = array_values( array_unique( $srcs ) ); - $galleries[] = $data; + $galleries[] = array_merge( + $shortcode_attrs, + array( + 'src' => array_values( array_unique( $srcs ) ) + ) + ); } } } diff --git a/wp-includes/version.php b/wp-includes/version.php index 690a0594c1..fb1ebfc982 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.8-alpha-40068'; +$wp_version = '4.8-alpha-40070'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.