我正在寻找从网站嵌入视频,不提供oembed支持。我写了一些代码,但不起作用。
链接示例:
https://openload.co/f/onU1gT5mkJ8/A_date_with_Lazar_Angelov.mp4
嵌入示例:
<iframe src="https://openload.co/embed/onU1gT5mkJ8/A_date_with_Lazar_Angelov.mp4" scrolling="no" frameborder="0" width="700" height="430" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe>
我的代码:
add_action( \'init\', function()
{
wp_embed_register_handler(
\'openload\',
\'#https://www\\.openload\\.co/f/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)?#i\',
\'wp_embed_handler_openload\'
);
} );
function wp_embed_handler_openload( $matches, $attr, $url, $rawattr )
{
$embed = sprintf(
\'<iframe class="openload-video" src="https://openload.co/embed/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)" scrolling="no" frameborder="0" width="700" height="430" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true">></iframe>\',
esc_attr( $matches[1] )
);
return apply_filters( \'embed_openload\', $embed, $matches, $attr, $url, $rawattr );
}
我真的被这个搞砸了。如果您能提供任何有帮助的建议或信息链接,我将不胜感激。谢谢
最合适的回答,由SO网友:TheDeadMedic 整理而成
可以肯定的是,您试图在sprintf
呼叫,当您应该使用。。。嗯,asprintf
format:
$embed = sprintf(
\'<iframe class="openload-video" src="https://openload.co/embed/%s" scrolling="no" frameborder="0" width="700" height="430" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true">></iframe>\',
esc_attr(
$matches[1]
)
);
请注意,您没有使用
www
在嵌入url中:
https://openload.co/f/onU1gT5mkJ8/A_date_with_Lazar_Angelov.mp4
正如您的模式所期望的那样:
#https://www\\.openload\\.co/f/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)?#i