我希望能够在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原生方法来实现这一点。谢谢
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按钮来生成此短代码?