私はoEmbedを使ってビデオを埋め込むウィジェットに取り組んでおり、WordPressのデフォルトプロバイダーを使ってテストしています。これまでのところ、Viddlerを除いて、それらはすべてうまく機能しています。ビデオは表示されますが、指定した幅と高さでは表示されません。
ウィジェットでウィジェットを正しく動作させるために、私はwp_oembed_get()関数を使用しています。これにはビデオのURLと、オプションで幅と高さの配列が必要です。
// Test Data:
$url = 'http://www.viddler.com/v/bdce8c7';
$width = '250';
$height = '140';
echo wp_oembed_get( $url, array( 'width' => $width, 'height' => $height ) );
これにより、サイズが620 x 349の動画が生成されます。回避策を講じましたが、wp_oembed_get()を使用すると、これをすべて実行できるはずです。これが私がまとめたものです。
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;
これはうまくいきますが、これが私がWPまたはViddlerに報告すべきバグであるかどうか疑問に思います。 WP Core(wp-includes/class-oembed.php)では、ViddlerのURLフォーマットは次のとおりです。
http://lab.viddler.com/services/oembed/
それは私が上で持っているものに変えられるべきですか?
http://www.viddler.com/oembed/
この問題を抱えている人はいますか?
はい、viddlerはそのエンボディッドエンドポイントを変更したようで、古いものからのリダイレクトはmaxwidthを削除しています。
私は問題についてのコアチケットを作りました: http://core.trac.wordpress.org/ticket/24296