您可以为embed_oembed_html
过滤并以第三个输入参数oembed为目标$url
.
然后,您可以创建布尔函数,例如(未测试):
function is_oembed_from_video_specific_hosts_wpse274552( $url )
{
return in_array(
parse_url( $url, PHP_URL_HOST ),
[
\'youtube.com\',
\'youtu.be\',
\'vimeo.com\', // ... etc
],
true
);
}
或更详细(更昂贵)的检查,如(未测试):
function is_video_oembed_wpse274552( $url )
{
$video_providers = [
\'#https?://((m|www)\\.)?youtube\\.com/watch.*#i\',
\'#https?://((m|www)\\.)?youtube\\.com/playlist.*#i\',
\'#https?://youtu\\.be/.*#i\',
\'#https?://(.+\\.)?vimeo\\.com/.*#i\',
\'#https?://(www\\.)?dailymotion\\.com/.*#i\',
\'#https?://dai\\.ly/.*#i\',
\'#https?://videopress\\.com/v/.*#\',
\'#https?://wordpress\\.tv/.*#i\',
\'#https?://(www\\.)?funnyordie\\.com/videos/.*#i\',
\'#https?://(www\\.)?(animoto|video214)\\.com/play/.*#i\',
\'#https?://www\\.facebook\\.com/.*/videos/.*#i\',
\'#https?://www\\.facebook\\.com/video\\.php.*#i\', // ... etc
];
$is_video_oembed = false;
foreach( $video_providers as $video_provider )
{
if ( preg_match( $video_provider , $url ) ) {
{
$is_video_oembed = true;
break;
}
}
return $is_video_oembed;
}
注意,oEmbed提供者可以在WordPress核心和通过过滤器进行修改、添加和删除。这可能会影响上述检查。
希望您能根据自己的需要进行调整!