我正在尝试将参数添加到通过Wordpress'oembed嵌入的vimeo视频中。我已经设法使用下面的代码为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);
关于我做错了什么的任何建议?
我发现更好的方法是在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