Wordpress 3.5 wurde vor kurzem veröffentlicht, habe ich das Wordpress Media Upload-System über Thickbox und window.send_to_editor
für einige Optionen in meinem Wordpress-Thema (Hintergründe, Logos etc ...).Wordpress 3.5 benutzerdefinierte Medien-Upload für Ihre Themenoptionen
Aber wie Sie wissen, hat Wordpress einen neuen Media Manager integriert, ich wollte diese neue Funktion verwenden, um Bilder/Dateien als benutzerdefinierte Felder hochzuladen. Also verbrachte ich den Morgen damit, einen Weg zu finden, das gewünschte Ergebnis zu erzielen.
Ich fand mit dieser Lösung, die für einige von Ihnen nützlich sein kann. Vielen Dank für Ihre Rückmeldung zum Code oder zu Ihren Verbesserungen!
HTML-Beispiel:
<a href="#" class="custom_media_upload">Upload</a>
<img class="custom_media_image" src="" />
<input class="custom_media_url" type="text" name="attachment_url" value="">
<input class="custom_media_id" type="text" name="attachment_id" value="">
jQuery-Code:
$('.custom_media_upload').click(function() {
var send_attachment_bkp = wp.media.editor.send.attachment;
wp.media.editor.send.attachment = function(props, attachment) {
$('.custom_media_image').attr('src', attachment.url);
$('.custom_media_url').val(attachment.url);
$('.custom_media_id').val(attachment.id);
wp.media.editor.send.attachment = send_attachment_bkp;
}
wp.media.editor.open();
return false;
});
Wenn Sie alle Einstellungen in der attachment
Variablen enthalten ist, um zu sehen möchten, dass Sie ein console.log(attachment)
oder alert(attachment)
tun können.
Wordpress admin verwendet noConflict, also musste ich die $ -> jQuery ändern. Sehr hilfreich danke! – styks
Vielen Dank für das knackige Beispiel! Das Übergeben einer Post-ID ist so einfach wie die Übergabe als Parameter in der wp.media.editor.open() – JosFabre
Ich frage mich, wie Media API als Abhängigkeit zu einem Skript in 'wp_enqueue_script()' geladen werden kann. Ich weiß, dass 'wp_enqueue_media()' da ist, aber ich würde lieber die Abhängigkeit benutzen - gibt es eine Möglichkeit, dies zu tun? – Atadj