检测嵌入的视频格式

时间:2019-02-06 作者:Ferdy Sopian

我需要从短代码中获取视频格式。例如,如果我将我的帖子元“\\u video\\u format\\u embed”设置为[video src="https://url.domain/myvideo.mp4" /] .

如何获取我的短代码的视频格式?

$video_embeded = get_post_meta(get_the_ID(), \'_video_format_embed\');
$video_format = \'???\'; // please help
if(\'mp4\' === $video_format){
 //some code
}

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

因此,您可以将视频放在一个短代码中,然后可以对该短代码函数运行过滤器。工作原理如下(放在functions.php或一些自定义插件中):

function so327822_wp_video_shortcode($output, $atts) {
    //get video ID by src
    $video_id = attachment_url_to_postid( $atts[\'src\'] );
    //get video meta
    $video_meta = wp_get_attachment_metadata( $video_id );
    //uncomment next line, to view all meta
    //echo \'<pre>\' . print_r($video_meta, true) . \'</pre>\';

    if ( $video_meta[\'fileformat\'] === \'mp4\' ) {
        //mess with $output here, if we have mp4
    }

    //return 
    return $output;
}
add_filter(\'wp_video_shortcode\', \'so327822_wp_video_shortcode\', 10, 2);

相关推荐

Do not parse shortcode in CPT

我有一个CPT,我不想在它的内容中解析shortcode(使用\\u content()函数)。我可以使用remove\\u filter删除短代码的默认过滤器。但我如何确定我只是为了我想要的CPT而删除过滤器?我有一个在页面中使用的快捷码[我的自定义快捷码]。此短代码使用WP\\U查询和输出CPT帖子。我不想在这篇CPT文章中分析短代码。我是否应该在短代码解析挂钩之前用虚拟内容更改短代码,并在之后替换回来?或者我应该在我的CPT输出之前删除短代码的默认过滤器,然后在我的CPT输出完成后再次添加短代码的默