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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (29)

我正在尝试将参数添加到通过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);

关于我做错了什么的任何建议?

提问于
用户回答回答于

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

扫码关注云+社区

领取腾讯云代金券