是否自动将包装添加到YouTube嵌入?

时间:2014-09-25 作者:MVS

通过更新版本的WordPress,YouTube自动嵌入。在我正在工作的这个特定网站上,我需要一个div 围绕嵌入的iframe. 我看了一下我的functions.php 但看不到任何与YouTube相关的内容。在哪里可以找到添加额外html所需的代码?

2 个回复
SO网友:Otto

制作custom plugin 对于您的站点,请将此代码放入其中。

add_filter(\'oembed_dataparse\',\'oembed_youtube_add_wrapper\',10,3);
function oembed_youtube_add_wrapper($return, $data, $url) {
    if ($data->provider_name == \'YouTube\') {
        return "<div class=\'whatever\'>{$return}</div>";
    } else {
        return $return;
    }
}
Note: 当从oembed提供程序收集数据时,过滤器将运行。因此,如果您已经嵌入了帖子,并且嵌入的数据已被缓存,则不会对其进行修改。

SO网友:indextwo

就我个人而言,我发现oembed_dataparse 过滤器使用起来相当灵活;有时有效,有时无效;当与自定义TinyMCE实例结合使用时,似乎添加的包装是硬烘焙到内容中的,而不是通过输出时的过滤器添加的。

我找到了embed_oembed_html 过滤器更可靠,每次都能工作:

function vnmFunctionality_embedWrapper($html, $url, $attr, $post_id) {
    return \'<div class="embedwrapper">\' . $html . \'</div>\';
}

add_filter(\'embed_oembed_html\', \'vnmFunctionality_embedWrapper\', 10, 4);
请注意,这将包装所有oEmbed。如果您想专门针对YouTube:

function vnmFunctionality_embedWrapper($html, $url, $attr, $post_id) {

    if (strpos($html, \'youtube\') !== false) {
        return \'<div class="youtubewrapper">\' . $html . \'</div>\';
    }

    return $html;
}

结束

相关推荐

如何通过url在前台帖子中嵌入YouTube视频

我想嵌入视频(&A);通过在我的wordpress网站中输入url获取图像。在WordPress repsitory中有许多通过url嵌入视频的插件,但在我的网站中,我想从前端启用此功能。注册用户可以输入url,此视频将在帖子中显示。我怎样才能做到这一点。