Ich weiß, dass plupload die neue Upload-Engine für WordPress 3.3 sein wird, aber ich habe mich gefragt, ob es noch Unterlagen zur Integration in WordPress gibt.
Wie kann ich eine Antwort vom plUpload jQuery-Objekt erfassen, nachdem es die gewünschten Medien hochgeladen hat, und wie kann ich dieselbe Funktionalität in einer Meta-Box zum Erstellen einer Galerie verwenden?
Hat schon jemand damit gespielt?
Antworten:
Es gibt eine bestimmte Datei, die diese Funktionalität behandelt:
/wp-includes/js/plupload/handlers.dev.js
. Diese Datei enthält alle Hooks und Trigger, die Plupload (das Drag & Drop-Multi-File-System eines Drittanbieters) mit dem Uploader verbinden.Es gibt zwei Ereignisse, die Sie sich ansehen sollten: "FileUploaded" und "Upload Complete"
Datei hochgeladen
Denken Sie daran, dass der neue Uploader mehrere Dateien gleichzeitig hochladen kann. Wenn Sie also nach dem Hochladen jeder Datei in der Warteschlange etwas tun möchten, verwenden Sie jQuery, um eine Bindung an dieses Ereignis herzustellen.
WordPress bindet beispielsweise Folgendes:
Das
uploadSuccess
Funktion hier verarbeitet Miniaturansichten von Bildern, ruft Meta-Anhänge vom Server ab und bindet die Schaltflächen zum Bearbeiten / Löschen an das richtige Objekt.UploadComplete
Das UploadComplete-Ereignis wird nach allem ausgelöst in der Warteschlange fertig Upload ist. Wenn Sie einen allgemeinen Bereinigungsvorgang starten möchten, nachdem der gesamte Download abgeschlossen ist, ist dies das, woran Sie binden möchten.
WordPress bindet beispielsweise Folgendes:
Die
uploadComplete
Funktion hier aktiviert nur die Schaltfläche "Galerie einfügen" auf der Seite.Unglücklicherweise ...
... es scheint keine Möglichkeit für uns zu geben, uns an diese Ereignisse zu binden. Das
uploader
Objekt befindet sich innerhalb eines Abschlusses in derhandlers.js
Datei, und Plupload selbst kann nicht auf vorhandene Instanzen verweisen. Sie können keinen einfachen jQuery-Selektor verwenden, um ein benutzerdefiniertes Ereignis hinzuzufügen.Zum einen können Sie diese benutzerdefinierten Ereignisse beliebig in Ihren eigenen Systemen verwenden. Drehen Sie einfach Ihre eigene Version von
handlers.js
Stellen Sie einfach Datei mit Ihren eigenen Ereignissen zusammen und Sie können tun, was Sie wollen. Für den vorhandenen Uploader bleibt jedoch die vorhandene API erhalten.Beachten Sie, dass der neue Pluploader die gleichen Methoden wie der alte Flash-Uploader aufruft. Ich vermute also, dass alle vorhandenen Hacks oder Integrationen, die Sie haben, weiter funktionieren sollten.
Testen Sie diese Annahme
Ich habe ein Plugin , das den vorhandenen Uploader verwendet, um Dateianhänge hochzuladen und die URL in einem benutzerdefinierten Metafeld anzuzeigen. Mit dem alten Uploader hat es wie durch Zauberhand geklappt, also habe ich es in WP 3.3 gestartet, um zu sehen, ob es auch mit dem neuen Uploader funktioniert .
Und das tut es!
Wenn Sie sich bereits in den Media Uploader integrieren, sollte Ihr System dennoch ohne Änderungen mit dem neuen System funktionieren.
quelle
(Dies ist nur ein praktisches Beispiel, das auf der Antwort von EAMann basiert.)
Es gibt weitere Upload-Ereignisse, die Sie verwenden können. Lesen Sie die Dokumentation ...
quelle
upload-attachment
die den nativenwp_ajax_upload_attachment()
Handler auslöst, und mit einigen Optimierungen muss der benutzerdefinierte Upload-Handler insgesamt nicht verwendet werden, sondern nur der Formular- und der Skriptteil.Hier ist eine Erweiterung der Antwort von @One Trick Pony. Zusätzlich zum Hochladen der Datei in den richtigen Ordner wird die Datei auch als Anhang gespeichert:
quelle