我正在寻找一种有效的方法来检测用户输入是否是一个有效的嵌入链接(以及类型)。我知道这会导致WordPress在任意输入的情况下运行其嵌入代码。
例如,如下所示:
$embed_code = wp_oembed_get($some_string);
if($embed_code!=FALSE){
// do something clever
}
假设至少有一些链接,它将返回一个完全标记的链接,失败所有其他链接。然而,我所追求的行为是能够为它提供一些用户的输入(在适当的卫生条件下),如果内容是一个不识别的URL,则返回一个完全标记的嵌入或一个假的但不是一个超链接。其目的是检测给定的输入文本是否为有效的可嵌入URL。
我是否可以(或应该)使用wp_oembed_get
来检测有效的可嵌入链接,或者有更好的方法来这样做?
发布于 2019-09-12 08:43:47
用于匹配可嵌入URL的regex模式存储在WP_oEmbed
中,该方法具有get_provider()
方法,用于检查给定URL是否为支持的提供者的可嵌入URL。只需将discover
参数设置为false,如果您不想实际向URL发送请求来测试它,并且只想匹配regex:
$url = 'https://twitter.com/WordPress/status/1169427892406644736';
$oembed = new WP_oEmbed();
$provider = $oembed->get_provider( $url, [ 'discover' => false ] );
if ( false !== $provider ) {
// Is embeddable.
}
https://wordpress.stackexchange.com/questions/348123
复制相似问题