WP_EMBED_REGISTER_HANDLER不工作

时间:2017-08-17 作者:Archi25

我将此功能用于其他视频主机,但由于某些原因,现在它不起作用。这是视频的直接嵌入代码

https://vidoza.net/r2jeim68kuq6.html

<IFRAME SRC="https://vidoza.net/embed-r2jeim68kuq6.html" FRAMEBORDER=0 MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=NO WIDTH=640 HEIGHT=360 allowfullscreen></IFRAME>
这是我的注册功能。

add_action( \'init\', function()
{        wp_embed_register_handler(
        \'vidoza\', 
        \'#https://vidoza\\.net/([a-zA-Z0-9_-]+)$#i\',   
        \'vidoza_embed_handler\' 
    );
} );


function vidoza_embed_handler( $matches, $attr, $url, $rawattr )
{
    $embed = sprintf( 
        \'<IFRAME SRC="https://vidoza.net/embed-%1$s" FRAMEBORDER=0 MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=NO WIDTH=640 HEIGHT=360 allowfullscreen></IFRAME>\',
        esc_attr( $matches[1] )
    );
    return apply_filters( \'vidoza_embed_handler\', $embed, $matches, $attr, $url, $rawattr );
}
我无法让它工作。

1 个回复
最合适的回答,由SO网友:birgire 整理而成

您正在尝试匹配r2jeim68kuq6.html 部分,但此处不允许在正则表达式模式中使用点:

\'#https://vidoza\\.net/([a-zA-Z0-9_-]+)$#i\'
您可以尝试,例如(删除A-Z 也因为不区分大小写i 搜索):

\'#https://vidoza\\.net/([a-z0-9_-]+)\\.html$#i\'
如果.html 是标准扩展,您还可以将iframe源调整为:

src="https://vidoza.net/embed-%1$s.html" 
希望有帮助!

结束

相关推荐

Heartbeat API oEmbed

默认情况下,通过运行内容the_content 过滤器会自动检查oEmbed内容。但是,当通过返回数据时heartbeat_received oEmbed的过滤器似乎不起作用。例如-function test_heartbeat_received( $response, $data ) { if( $data[\'test_heartbeat\'] == \'test\' ) { $content = \"https://twitter.com/WordPress/