如何添加oemed不支持的新嵌入处理程序?

时间:2016-11-27 作者:Merol93

我正在寻找从网站嵌入视频,不提供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 );
    }
我真的被这个搞砸了。如果您能提供任何有帮助的建议或信息链接,我将不胜感激。谢谢

1 个回复
最合适的回答,由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

相关推荐

og:image functions.php

我有自定义模板,我需要得到og:在标题图像url。类映像在DB wp\\u postmeta-meta\\u value中的位置我尝试使用函数。phpfunction getOgImage() { global $wpdb; $ogimage = $wpdb->get_results(\"SELECT DISTINCT post_id FROM wp_postmeta WHERE meta_value\", OBJECT); echo