Je travaille sur un widget qui intègre des vidéos à l'aide de oEmbed et je le teste à l'aide des fournisseurs par défaut de WordPress. Jusqu'à présent, ils fonctionnent tous très bien, sauf Viddler. La vidéo est affichée, mais pas avec la largeur et la hauteur que j'ai spécifiées.
Pour que les oembeds fonctionnent correctement dans le widget, j'utilise la fonction wp_oembed_get (), qui nécessite l'URL de la vidéo et éventuellement un tableau avec la largeur et la hauteur.
// Test Data:
$url = 'http://www.viddler.com/v/bdce8c7';
$width = '250';
$height = '140';
echo wp_oembed_get( $url, array( 'width' => $width, 'height' => $height ) );
Cela donne une vidéo de 620 x 349. J'ai piraté la situation, mais wp_oembed_get () est censé pouvoir faire tout cela pour moi, n'est-ce pas? Voici ce que j'ai mis ensemble:
require_once( ABSPATH . WPINC . '/class-oembed.php' );
// $service is detected by parsing the URL for the Host
if ( $service == 'viddler' ) {
$oem = _wp_oembed_get_object();
$json = 'http://www.viddler.com/oembed/?format=json&url=' . urlencode( $url );
$return = $oem->fetch( $json, $url, array( 'width' => $width, 'height' => $height ) );
$oembed = $return->html;
} else {
$oembed = wp_oembed_get( $url, array( 'width' => $width, 'height' => $height ) );
}
return $oembed;
Cela fonctionne, mais je me demande s’il s’agit d’un bogue à signaler à WP ou à Viddler. Dans le WP Core (wp-includes/class-oembed.php), le format de l'URL pour Viddler est le suivant:
http://lab.viddler.com/services/oembed/
Devrait-on changer cela pour ce que j'ai ci-dessus?
http://www.viddler.com/oembed/
Quelqu'un d'autre a-t-il ce problème?
Oui, il semblerait que viddler ait changé son point de terminaison initial et que la redirection de l’ancien supprime la maxwidth.
J'ai créé un ticket principal sur le problème: http://core.trac.wordpress.org/ticket/24296