WordPress Media Manager – Beschränkung auf bestimmte Mime-Typ

Ich arbeite an einem CPT, in dem ich einige Meta-Felder hinzufügen muss, mit denen Benutzer Medien anhängen können. Es gibt eine Bedingung, um irgendeinen mime-type Aufsatz an einzelnen Beitrag anzuschließen.

Ich habe zwei Meta-Felder erstellt, 1) Anhangstyp und 2) Anhang. Unter Anhangstyp kann der Benutzer Anhängearten wie Dokument, PDF, Audio, Video oder Bild auswählen. Und im zweiten Feld kann der Benutzer Medien aus dem Medienmanager auswählen.

Jetzt habe ich das Problem, dass einige Benutzer andere Medientypen auswählen als den Anhangstyp. Wie er ist der Anlagetyp Video ausgewählt und die Bild- oder Audiodatei mit Post angehängt.

Wie kann ich den Media Manager auf bestimmte MIME-Typen beschränken? Wenn der Benutzer ausgewählt ist, wird der Audio Media Manager nur die Audiodateien anzeigen. Wenn der Benutzer das Bild ausgewählt hat, werden die Bilder nur in Media Manager angezeigt.

Solutions Collecting From Web of "WordPress Media Manager – Beschränkung auf bestimmte Mime-Typ"

Dies ist keine vollständige Lösung, es ist nur eine Richtung für Sie mit Medien-Uploader zu arbeiten

Zunächst müssen Sie wissen, wie Sie den Media Uploader in Ihrem Plugin / Theme implementieren. Sie können dies aus der Datei wp-admin/js/custom-background.js lernen, die von WP für die benutzerdefinierte Hintergrundseite verwendet wird.

Wenn das zu schwer zu verstehen ist, dann lesen Sie dieses Tutorial , es erklärt jede Codezeile für Sie.

Zweitens, wenn Sie den Media Uploader implementieren, wissen Sie, dass es ein Optionsobjekt für den Medienrahmen gibt. Dieses Objekt enthält eine Liste mit vielen Optionen, die nicht dokumentiert sind. Wir können sie nur sehen, wenn wp-includes/js/media-views.js Datei wp-includes/js/media-views.js .

Für Ihren Bedarf müssen Sie einen Optionstyp für die library , zum Beispiel:

 // Create a frame only if needed if ( !frame ) { var frameOptions = ( { className : 'media-frame rwmb-file-frame', multiple : true, title : 'Select files' } ); if ( mimeType ) { frameOptions.library = { type : mimeType }; } frame = wp.media( frameOptions ); } // Open media uploader frame.open(); // Remove all attached 'select' event frame.off( 'select' ); // Handle selection frame.on( 'select', function() {... } ); 

Es gibt eine Variable im Code: mimeType , und Sie müssen einen Wert an jQuery übergeben, wenn der Benutzer einen Typ aus dem ersten Eingabefeld mimeType .

Da Sie Ihren Benutzer beschränken möchten, um die Mediendatei basierend auf dem benutzerdefinierten Metatyp des Anhangstyps anzuzeigen.

1. Um Post-Meta zu bekommen

 get_post_meta($post->ID,'attachment-type',true) 

2.Zum Ändern der Standardansicht des Laufwerkscodes der Medienbibliothek mit attacment-type post meta

$post->ID bezieht sich auf den aktuellen Anhang. Anhänge, Beiträge, Seiten, Menüs, sind alle “Beiträge” von WordPress.

 $type = get_post_mime_type($post->ID); if ( $type == "image/jpeg" or $type == "image/gif" or $type == "image/png") { echo 'This attachment is a '.$type.' attachment.'; } 

Nicht genau eine Antwort auf das allgemeine Problem, aber dies zeigt, wie Sie den MIME-Typ eines Anhangs oder “Post” mindestens mit Hilfe von PHP erhalten können.

um es mit jQuery zu machen, vielleicht:

Wenn Sie einen vorgerenderten Link zur Verfügung haben, können Sie jquery verwenden, um die Dateierweiterung am Ende des Links zu finden.