Um Ihnen den Einstieg zu erleichtern, sind die Grundfunktionen und Außerkraftsetzungen meines Wissens aktuell. Es gibt vielleicht bessere Lösungen, aber ich hatte nur zwei Tage mit 3.5:
// open modal - bind this to your button
if ( typeof wp !== 'undefined' && wp.media && wp.media.editor )
wp.media.editor.open( ##unique_id_here## );
// backup of original send function
original_send = wp.media.editor.send.attachment;
// new send function
wp.media.editor.send.attachment = function( a, b) {
console.log(b); // b has all informations about the attachment
// or whatever you want to do with the data at this point
// original function makes an ajax call to retrieve the image html tag and does a little more
};
// wp.media.send.to.editor will automatically trigger window.send_to_editor for backwards compatibility
// backup original window.send_to_editor
window.original_send_to_editor = window.send_to_editor;
// override window.send_to_editor
window.send_to_editor = function(html) {
// html argument might not be useful in this case
// use the data from var b (attachment) here to make your own ajax call or use data from b and send it back to your defined input fields etc.
}
Dies ist keine vollständige funktionierende Antwort. Sie müssen Ihre Eingabefelder selbst definieren und nachverfolgen. Dies sollte Ihnen nur den Einstieg erleichtern. Wenn Sie konkretere Fragen haben, fragen Sie einfach.
Und stellen Sie sicher, dass Sie die ursprünglichen Funktionen neu zuweisen, wenn Ihr Skript fertig ist.
Aus Kommentaren gezogen:
Wie kann ich das Abschlussereignis des Leuchtkastens anhören?
// add listener:
wp.media.view.Modal.prototype.on('close', function(){ console.log('triggered close'); }
Hier finden Sie ein kleines Tutorial zur Verwendung von WP 3.5 Media Uploader in Designoptionen. Das habe ich mir ausgedacht und es funktioniert perfekt für mich. Lassen Sie mich wissen, ob Sie eine bessere Lösung finden.
So habe ich den Code in meine Designoptionen implementiert:
Aktualisieren
Dieser Code funktioniert nur auf der Nachbearbeitungsseite. Damit es auf der Seite mit den Themenoptionen funktioniert, müssen Sie sie hinzufügen
wp_enqueue_media();
quelle
Ich mache fast das gleiche, es ist noch nicht fertig, aber es funktioniert:
in der php:
Das Javascript:
Auf diese Weise können Sie die Bild-URL (beliebiger Größe) hochladen und an das
<input>
Element senden .Ich versuche dies als Einstellung zu tun und es funktioniert. Nur das, was ich jetzt brauche, ist eine zuverlässige Möglichkeit, die Anhang-ID an die zu senden
<input>
quelle
Ich denke, @janw hat diesen Punkt völlig richtig verstanden, aber ich konnte nichts bewirken. Jan fügt die Schaltfläche für die Medienbibliothek ein:
und bereitet dann die Standardaktion vor mit:
Das Problem, auf das ich gestoßen bin, ist, dass das Einfügen einer Medienschaltfläche auf diese Weise dem Link nicht die ID "default_featured_image_button" zuweist. Tatsächlich wird dem eingefügten Link keine ID hinzugefügt. Das habe ich also getan, um es zum Laufen zu bringen.
Ich habe diese Zeile direkt nach meinem Eingabefeld zu meiner Meta-Box-Rückruffunktion hinzugefügt:
Ich habe dann meine benutzerdefinierte JQuery-Datei und die Thickbox-CSS-Datei in die Warteschlange gestellt, ebenfalls in meiner Datei functions.php.
Schließlich enthielt meine Datei image-set.js Folgendes:
Sie werden feststellen, dass ich Variablen verwendet habe, um den Namen und die ID des Eingabefelds zu speichern, das sich direkt vor dem Link befindet, der die jQuery aufruft. Auf diese Weise kann dieser Code wiederholt auf derselben Seite verwendet werden. Sie müssten lediglich allen Schaltflächen eine Klasse zuweisen oder einzelne IDs für die Schaltflächen in Ihrer Abfrage verwenden, wie ich es getan habe. Ich hoffe, das hilft jemandem, wie es Jan mir geantwortet hat.
quelle
Ich weiß, dass dies ein alter Beitrag ist, aber ich möchte nur meine Erkenntnisse teilen:
Um den Medieneditor zu öffnen, rufen wir diese Funktion auf
Der Medieneditor sucht grundsätzlich nach tinyMCE editor (
window.tinymce
) und dann nach Quicktags (window.QTags
), an die der Inhalt weitergeleitet werden soll.Für meinen Ansatz zum Abrufen des Inhalts habe ich
window.QTags
ein benutzerdefiniertes Objekt zugewiesen , das über eineinsertContent()
Methode verfügt:Referenz: phpxref
quelle