通过wordpress oembed为vimeo视频添加参数

时间:2014-06-24 19:56:52

标签: wordpress function vimeo oembed

我正在尝试将参数添加到通过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&amp;byline=0&amp;portrait=0" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen ></iframe></div>';
}
return $html;
}
add_filter('oembed_result','Oembed_vimeo_no_title',10,3);

有关我做错的任何建议吗?

1 个答案:

答案 0 :(得分:0)

我发现更好的方法是在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