我正在开发一个使用oEmbed嵌入视频的小部件,并使用WordPress中的默认提供者进行测试。到目前为止,除了维德勒,他们都工作得很好。将显示视频,但不会显示我指定的宽度和高度。
为了让oembed在小部件中正常工作,我使用了wp\\u oembed\\u 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\\u oembed\\u 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;
这是可行的,但我想知道这是否是一个bug,我应该向WP或Viddler报告。在WP核心(WP includes/class oembed.php)中,Viddler的URL格式为:
http://lab.viddler.com/services/oembed/
是否应该将其更改为我上面的内容?
http://www.viddler.com/oembed/
还有其他人有这个问题吗?