web-dev-qa-db-fra.com

Comment vérifier si "media_send_to_editor" est audio?

J'utilise une fonction pour créer des champs supplémentaires sur le téléchargement de média. Ils ne sont importants que pour les images et les vidéos, mais ils sont inutiles et peuvent même dérouter les utilisateurs qui téléchargent de l'audio.

C'est la fonction:

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;
}

Les fonctions sont ajoutées avec

add_filter('image_send_to_editor','give_linked_images_data',10,8);

... et j'ai une fonction similaire en utilisant

add_filter('media_send_to_editor','give_linked_images_data',10,8);

... mais il fonctionne en vidéo et upload audio. Comment détecter si le média en cours de téléchargement est de type audio, pour désactiver les champs personnalisés?

2
Daniel Lemes

Nous pouvons simplifier les contrôles mime type , avec les fonctions boolean suivantes:

  • wp_attachment_is( 'image', $id )

  • wp_attachment_is( 'video', $id )

  • wp_attachment_is( 'audio', $id )

$id est l'ID de la pièce jointe.

L'ID de la pièce jointe est en réalité l'un des arguments d'entrée pour le rappel de filtre media_send_to_editor.

Nous avons également:

  • wp_attachment_is_image( $id )

c'est un wrapper pour wp_attachment_is( 'image', $id ).

Références:

2
birgire

J'ai découvert comment:

$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
}
1
Daniel Lemes