我正在尝试向vimeo视频添加参数,这些参数是通过Wordpress的oembed嵌入的。我已经设法用下面的代码为youtube视频做到了这一点。我在functions.php中使用了这个函数,它的效果非常好。我已经为Vimeo视频编辑了同样的代码,但我似乎不能让它工作。
这是我的代码:
function Oembed_vimeo_no_title($html,$url,$args){
// Only run this for vimeo embeds
if ( !strstr($url, 'vimeo.com') )
return $html;
$url_string = parse_url($url, PHP_URL_QUERY);
parse_str($url_string, $id);
if (isset($id['v'])) {
return '<div id="video_full_width"><iframe width="100%" height="394" src="//player.vimeo.com/video/'.$id['v'].'?title=0&byline=0&portrait=0" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen ></iframe></div>';
}
return $html;
}
add_filter('oembed_result','Oembed_vimeo_no_title',10,3);
对我做错了什么有什么建议吗?
发布于 2019-03-08 06:22:51
我发现更好的方法是在oembed_fetch_url
过滤器钩子上,如下所示:
<?php
/**
* Add parameters to embed
*
* @src https://foxland.fi/adding-parameters-to-wordpress-oembed/
* @src https://github.com/WordPress/WordPress/blob/ec417a34a7ce0d10a998b7eb6d50d7ba6291d94d/wp-includes/class-oembed.php#L553
* @src https://developer.vimeo.com/api/oembed/videos
*
* Use it like this: `[embed autoplay="true"]https://vimeo.com/190063150[/embed]`
*/
$allowed_args = ['autoplay'];
function koa_oembed_args($provider, $url, $args) {
global $allowed_args;
$filtered_args = array_filter(
$args,
function ($key) use ($allowed_args) {
return in_array($key, $allowed_args);
},
ARRAY_FILTER_USE_KEY
);
foreach ($filtered_args as $key => $value) {
$provider = add_query_arg($key, $value, $provider);
}
return $provider;
}
add_filter('oembed_fetch_url', 'koa_oembed_args', 10, 3);
在我的另一个答案中有更多细节:https://stackoverflow.com/a/55053642/799327
https://stackoverflow.com/questions/24395204
复制相似问题