it-swarm.com.de

Wie überprüfe ich, ob "media_send_to_editor" Audio ist?

Ich benutze eine Funktion, um zusätzliche Felder beim Hochladen von Medien zu erstellen. Sie sind nur für Bilder und Videos wichtig, aber für meine Benutzer nutzlos und sogar verwirrend, wenn sie Audio hochladen.

Dies ist die Funktion:

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

Die Funktionen werden mit hinzugefügt

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

... und ich habe eine ähnliche Funktion mit

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

... aber es läuft auf Video und Audio-Upload. Wie kann ich feststellen, ob das hochgeladene Medium Audio ist, um die benutzerdefinierten Felder zu deaktivieren?

2
Daniel Lemes

Wir können die MIME-Typ-Prüfungen mit den folgenden Booleschen -Funktionen vereinfachen:

  • wp_attachment_is( 'image', $id )

  • wp_attachment_is( 'video', $id )

  • wp_attachment_is( 'audio', $id )

dabei ist $id die Anhangs-ID.

Die ID des Anhangs ist tatsächlich eines der Eingabeargumente für den media_send_to_editor-Filter-Rückruf.

Wir haben auch:

  • wp_attachment_is_image( $id )

das ist ein Wrapper für wp_attachment_is( 'image', $id ).

Referenzen:

2
birgire

Ich habe herausgefunden wie:

$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