it-swarm.com.de

Viddler oEmbed arbeitet nicht mit der angegebenen Breite

Ich arbeite an einem Widget, das Videos mit oEmbed einbettet, und teste es mit den Standardanbietern in WordPress. Bis jetzt funktionieren alle, außer Viddler, einwandfrei. Das Video wird angezeigt, jedoch nicht mit der von mir angegebenen Breite und Höhe.

Damit die oembeds im Widget ordnungsgemäß funktionieren, verwende ich die Funktion wp_oembed_get (), für die die URL des Videos und optional ein Array mit der Breite und Höhe erforderlich sind.

// Test Data:
$url = 'http://www.viddler.com/v/bdce8c7';
$width = '250';
$height = '140';

echo wp_oembed_get( $url, array( 'width' => $width, 'height' => $height ) );

Daraus ergibt sich ein Video mit den Abmessungen 620 x 349. Ich habe einen Ausweg gefunden, aber wp_oembed_get () soll das alles für mich tun können, oder? Folgendes habe ich zusammengestellt:

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;

Dies funktioniert, aber ich frage mich, ob dies ein Fehler ist, den ich WP oder Viddler melden sollte. Im WP Core (wp-includes/class-oembed.php) lautet das URL-Format für Viddler:

http://lab.viddler.com/services/oembed/

Sollte das geändert werden, was ich oben habe?

http://www.viddler.com/oembed/

Hat noch jemand dieses Problem?

1
Slushman

Ja, anscheinend hat Viddler seinen ursprünglichen Endpunkt geändert, und die Umleitung vom alten entfernt die maximale Breite.

Ich habe ein Kernticket zu diesem Problem erstellt: http://core.trac.wordpress.org/ticket/24296

0
Otto