这个class-oembed.php
文件显示了一些有关oEmbed的可用过滤器。
我们可以使用oembed_result
或oembed_dataparse
过滤以修改从Vimeo获取的HTML,然后再将其缓存到post meta中。以下是后者的一个示例:
add_filter( \'oembed_dataparse\', function( $return, $data, $url )
{
// Target only Vimeo:
if(
is_object( $data )
&& property_exists( $data, \'provider_name\' )
&& \'Vimeo\' === $data->provider_name
)
{
// Remove the unwanted attributes:
$return = str_ireplace(
array(
\'frameborder="0"\',
\'webkitallowfullscreen\',
\'mozallowfullscreen\'
),
\'\',
$return
);
}
return $return;
}, 10, 3 );
示例:
Before:
<iframe src="//player.vimeo.com/video/32001208"
width="584"
height="329"
frameborder="0"
title="Earth"
webkitallowfullscreen
mozallowfullscreen
allowfullscreen></iframe>
After:
<iframe src="//player.vimeo.com/video/32001208"
width="584"
height="329"
title="Earth"
allowfullscreen></iframe>
附加说明xhtml
:
如果您查看
Vimeo oEmbed API, 有一个
xhtml
具有默认值的参数
xhtml=false
. 您可以尝试,例如:
https://vimeo.com/api/oembed.json?url=https%3A//vimeo.com/32001208
vs。
https://vimeo.com/api/oembed.json?url=https%3A//vimeo.com/32001208&xhtml=true
因此,不是:
webkitallowfullscreen mozallowfullscreen allowfullscreen
我们得到:
webkitallowfullscreen="webkitallowfullscreen"
mozallowfullscreen="mozallowfullscreen"
allowfullscreen="allowfullscreen"
如果我们想要实现XHTML验证,我们可以尝试通过
oembed_remote_get_args
, 例如但我没有测试。