如何检查媒体发送到编辑者是否为音频?

时间:2017-01-23 作者:Daniel Lemes

我正在使用一个函数在媒体上传上创建其他字段。它们只对图像和视频很重要,但如果我的用户正在上传音频,它们将毫无用处,甚至会让我的用户感到困惑。

这是功能:

function give_linked_images_data($html, $id, $caption, $title, $align, $url, $size, $alt = \'\' ){
    $classes = \'img image-link\';
    if (get_post_meta($id, "pop_title") == \'\') $poptitle = \'\'; else $poptitle = \' data-title="\'. get_post_meta($id, "pop_title", true) .\'"\';    
    $html = preg_replace(\'/(<a.*?)>/\', \'$1 data-toggle="lightbox" \'. $poptitle .\' \' . $classes . \'" >\', $html);
    return $html;
}
这些函数添加了

add_filter(\'image_send_to_editor\',\'give_linked_images_data\',10,8);
。。。我有一个类似的函数

add_filter(\'media_send_to_editor\',\'give_linked_images_data\',10,8);
。。。但它是在视频上运行的and 音频上传。如何检测正在上载的媒体是否为音频,以禁用自定义字段?

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

我们可以使用以下布尔函数简化mime类型检查:

  • wp_attachment_is( \'image\', $id )

  • wp_attachment_is( \'video\', $id )

  • wp_attachment_is( \'audio\', $id )

其中$id 是附件ID。

附件的ID实际上是media_send_to_editor 筛选器回调。

我们还有:

SO网友:Daniel Lemes

I found out how:

$mime_type = get_post_mime_type($post->ID);
// all mime https://codex.wordpress.org/Function_Reference/get_allowed_mime_types

// videos and images only
$permit_mime = array(\'image/jpeg\',\'image/gif\',\'image/png\',\'image/bmp\',\'image/tiff\',\'image/x-icon\',\'video/x-ms-asf\',\'video/x-ms-wmv\',\'video/x-ms-wmx\',\'video/x-ms-wm\',\'video/avi\',\'video/divx\',\'video/x-flv\',\'video/quicktime\',\'video/mpeg\',\'video/mp4\',\'video/ogg\',\'video/webm\',\'video/x-matroska\');
// if is video or image
if (in_array($mime_type, $permit_mime)) {
    // the function
}

相关推荐

为内置钩子调用do_action和Apply_Filters是否安全?

我正在开发一个插件,它需要复制一些内置的WordPress逻辑。(此逻辑不能用任何内置方法调用,也不能独立连接到。)在这个动作序列中,WordPress的正常行为是调用动作挂钩(do_action(\'wp_login\', ...)) 和过滤器挂钩(apply_filters(\'login_redirect\', ...)).如果在对应于在Core中调用它们的时间点调用它们,那么直接从我的插件调用这些内置钩子是否安全(并且是可以接受的做法)?或者,其他与此相关的开发人员期望在非常特定的时间执行操作的风