从POST编辑器中向oEmbedded视频添加类?

时间:2014-11-07 作者:Michelle

我希望能够在post编辑器中动态地为oembed视频添加类。通过这种方式,我可以让一些视频像图像一样左对齐或右对齐,并让文本环绕它们,而默认行为是设置包含元素的视频全宽,并在调整大小时做出响应。我已经通过此函数和一些CSS实现了默认行为:

// remove dimensions from oEmbed videos & wrap in figure
add_filter( \'embed_oembed_html\', \'tdd_oembed_filter\', 10, 4 ) ; 
function tdd_oembed_filter($html, $url, $attr, $post_ID) {
    $return = \'<figure class="video-container">\'.$html.\'</figure>\';
    return $return;
}
但是,我找不到允许我在post editor的“从URL插入”媒体面板中添加“类”字段的过滤器,即使可以,我也不知道该类信息将存储在哪里,因为编辑器本身只以明文形式保存视频URL。

如果不要求用户使用短代码或自定义字段,而不是使用本机的oEmbed功能,这是否就是无法做到的?我猜短代码是最快/最简单的方法,但我想我应该先检查一下是否有更优雅的WordPress原生方法来实现这一点。谢谢

1 个回复
SO网友:birgire

短码版本的一个想法是通过本机添加自定义类[embed] 短代码:

[embed src="..." class="myclass"]
然后,您可以使用以下方法将其添加到自定义包装中:

add_filter( \'embed_oembed_html\', function ( $html, $url, $attr, $post_ID) {
    return sprintf( 
        \'<figure class="video-container %s">%s</figure>\', 
        isset( $attr[\'class\'] ) ? esc_attr( $attr[\'class\'] ) : \'\', 
        $html 
    );
}, 10, 4 );
然后,您可以使用自定义表单添加您自己的TinyMCE按钮来生成此短代码?

结束

相关推荐

如何将POST中的oEmbeded URL替换为实际的嵌入的HTML

我想要的是将推特oEmbed系统的输出输入到我的实际帖子中。IMHO嵌入输出本身是高质量的语义HTML,我宁愿将其放在帖子中,也不要放在嵌入元数据中,以防js停止工作(在这种情况下,推特将显示为合理的blockquote)。因此,我需要的是劫持oEmbed系统,并在处理后,将帖子中的嵌入URL替换为来自Twitter的HTML。显然,该解决方案还应该能够处理其他类型的嵌入。更新:我只是想澄清一下,我知道oEmbed在默认情况下是如何工作的(即,当对帖子内容运行“the\\u content”过滤器时,UR