我正在寻找从网站上嵌入视频,不提供oembed支持,但在wp codex上提供的关于wp_embed_register_handler()
对我这样的人来说太宽了。
我尝试将示例代码上载到我的主题中functions.php
, 我认为这会嵌入任何来自url的福布斯视频,比如oembed支持的网站,如youtube,但只会将链接输出到帖子上。
(注意:由于我的代表性较低,所有链接都已编辑。)
在我的例子中,我试图为一个名为myvi.ru
.我只想将url粘贴到帖子中,并自动使其输出嵌入的iframe代码。
例如,put
http:/www.myvi.ru/watch/Krishtianu-Ronaldu-na-ploschadi-Madrida_I8fWfbDia0ufHwP7W85ZBg2?ap=1
subbing公司
//
到
/
这是一个帖子,而不是必须得到实际的嵌入代码,这是
iframe width="640" height="390" src="/myvi.ru/player/embed/html/o7wvdeXPclZHaazh9Rum_ZuqOtTxR2_ntg5OVhDEhxabugy0qLQDKTbQ0SRijDi8N0" frameborder="0" allowfullscreen></iframe
<>
取出
我想将以下内容放入主题函数中。php可以解决这个问题,但运气不好。
wp_embed_register_handler( \'myvi\', \'#http://(?:www)\\.myvi\\.ru/(?:video/embed/embed\\.html|embedvideo/)\\?show=([\\d]+)&format=frame&height=([\\d]+)&width=([\\d]+)&video=(.+?)($|&)#i\', \'wp_embed_handler_myvi\' );
function wp_embed_handler_myvi( $matches, $attr, $url, $rawattr ) {
$embed = sprintf(
\'<iframe src="http:/www.myvi.ru/embed/embed.html?show=%1$s&format=frame&height=%2$s&width=%3$s&video=%4$s&mode=render" width="%3$spx" height="%2$spx" frameborder="0" allowfullscreen></iframe>\',
esc_attr($matches[1]),
esc_attr($matches[2]),
esc_attr($matches[3]),
esc_attr($matches[4])
);
return apply_filters( \'embed_myvi\', $embed, $matches, $attr, $url, $rawattr );
}
谁能给我指一下正确的方向吗?我试着在谷歌上搜索其他可以学习的例子,但找不到,我被卡住了。如果您能提供任何有帮助的建议或信息链接,我将不胜感激。谢谢
最合适的回答,由SO网友:birgire 整理而成
/**
* Register an embed handler for myvi videos
*/
add_action( \'init\', function()
{
wp_embed_register_handler(
\'myvi\',
\'#http://www\\.myvi\\.ru/watch/([a-zA-Z0-9_-]+)$#i\', // <-- Adjust this to your needs!
\'myvi_embed_handler\'
);
} );
这里,我们以不支持任何GET参数的方式构造正则表达式。因此,在测试时,需要删除
?api=1
部分来自url。否则,您可以根据需要进一步调整正则表达式。
自定义回调处理程序定义为:
/**
* Handler callback for the myvi video provider
*/
function myvi_embed_handler( $matches, $attr, $url, $rawattr )
{
$embed = sprintf(
\'<iframe src="http://myvi.ru/player/embed/html/%1$s" width="600" height="400" frameborder="0" allowfullscreen></iframe>\',
esc_attr( $matches[1] )
);
return apply_filters( \'myvi_embed_handler\', $embed, $matches, $attr, $url, $rawattr );
}
注意,这里我们假设所有必要的嵌入信息都包含在视频链接中。
以下是它在编辑器中的工作方式:
您应该只为您的网站执行此操作
really trust!