Media: Restrict appending `loop` parameter to Vimeo URLs specifically and not all external URLs in Video widget (via shortcode).

Fixes issue where Video widgets embedding external files fail to get recognized due to the presence of the `loop` param after the video filename, even though it has a recognized extension. Regardless, the `loop` param is only present to fix a Vimeo issue in ME.js 2.x.

Props timmydcrawford.
Amends [40640].
See #39686, #39994.
Fixes #40977.

Built from https://develop.svn.wordpress.org/trunk@40892


git-svn-id: http://core.svn.wordpress.org/trunk@40742 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Weston Ruter 2017-06-09 19:29:43 +00:00
parent 9cff8ff056
commit 011d33e95b
3 changed files with 7 additions and 7 deletions

View File

@ -2556,7 +2556,11 @@ function wp_video_shortcode( $attr, $content = '' ) {
} elseif ( $is_vimeo ) { } elseif ( $is_vimeo ) {
// Remove all query arguments and force SSL - see #40866. // Remove all query arguments and force SSL - see #40866.
$parsed_vimeo_url = wp_parse_url( $atts['src'] ); $parsed_vimeo_url = wp_parse_url( $atts['src'] );
$atts['src'] = 'https://' . $parsed_vimeo_url['host'] . $parsed_vimeo_url['path']; $vimeo_src = 'https://' . $parsed_vimeo_url['host'] . $parsed_vimeo_url['path'];
// Add loop param for mejs bug - see #40977, not needed after #39686.
$loop = $atts['loop'] ? '1' : '0';
$atts['src'] = add_query_arg( 'loop', $loop, $vimeo_src );
} }
} }

View File

@ -4,7 +4,7 @@
* *
* @global string $wp_version * @global string $wp_version
*/ */
$wp_version = '4.9-alpha-40885'; $wp_version = '4.9-alpha-40892';
/** /**
* 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.

View File

@ -115,13 +115,9 @@ class WP_Widget_Media_Video extends WP_Widget_Media {
$attachment = get_post( $instance['attachment_id'] ); $attachment = get_post( $instance['attachment_id'] );
} }
$src = $instance['url'];
if ( $attachment ) { if ( $attachment ) {
$src = wp_get_attachment_url( $attachment->ID ); $src = wp_get_attachment_url( $attachment->ID );
} else {
// Manually add the loop query argument.
$loop = $instance['loop'] ? '1' : '0';
$src = empty( $instance['url'] ) ? $instance['url'] : add_query_arg( 'loop', $loop, $instance['url'] );
} }
if ( empty( $src ) ) { if ( empty( $src ) ) {