我正在寻找一种有效的方法来检测用户输入是否是有效的嵌入链接(以及类型)。我知道WordPress可以使用任意输入运行其嵌入代码。
例如,如下所示:
$embed_code = wp_oembed_get($some_string);
if($embed_code!=FALSE){
// do something clever
}
假设至少有一些链接,它将返回一个完全标记的链接,其他所有链接都失败。然而,我所追求的行为是能够向其提供一些用户输入(在适当的卫生条件下),如果内容是它无法识别的URL,则返回完全标记的嵌入或错误的但不是超链接。目的是检测给定的输入文本是否是有效的可嵌入URL。
我可以(或应该)使用wp_oembed_get
要检测有效的可嵌入链接,是否有更好的方法?
最合适的回答,由SO网友:Jacob Peattie 整理而成
匹配可嵌入URL的正则表达式模式存储在WP_oEmbed
, 其中有方法get_provider()
用于检查给定URL是否是受支持提供程序的可嵌入URL。只需设置discover
如果您不想实际向URL发送请求以对其进行测试,而只想匹配正则表达式,则将参数设置为false:
$url = \'https://twitter.com/WordPress/status/1169427892406644736\';
$oembed = new WP_oEmbed();
$provider = $oembed->get_provider( $url, [ \'discover\' => false ] );
if ( false !== $provider ) {
// Is embeddable.
}