Wordpress 3.5 został niedawno wydany, użyłem systemu Wordpress Media Upload przez thickbox i window.send_to_editor
dla niektórych opcji w moim motywie Wordpress (tła, logo itp.).Wordpress 3.5 niestandardowe przesyłanie nośników dla opcji kompozycji
Ale jak wiesz, Wordpress zintegrował nowy Media Manager, chciałem użyć tej nowej funkcji do przesyłania zdjęć/plików jako pól niestandardowych. Więc spędziłem ranek, aby znaleźć sposób na uzyskanie pożądanego rezultatu.
Znalazłem za pomocą tego rozwiązania, które może być przydatne dla niektórych z was. Dziękuję za przesłanie opinii na temat kodu lub ulepszeń, o których myślisz!
HTML próbki:
<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="">
kod jQuery:
$('.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;
});
Jeśli chcesz zobaczyć wszystkie ustawienia zawarte w zmiennej attachment
można zrobić console.log(attachment)
lub alert(attachment)
.
Administrator Wordpress używa metody noConflict, więc musiałem zmienić jQuery $ ->. Bardzo pomocne dzięki! – styks
Dzięki milionowi za ten wyraźny przykład! Przekazywanie identyfikatora pocztowego jest tak proste, jak podanie go jako parametru w wp.media.editor.open() – JosFabre
Zastanawiam się, jak załadować Media API jako zależność do jakiegoś skryptu w 'wp_enqueue_script()'. Wiem, że 'wp_enqueue_media()' istnieje, ale wolałbym użyć zależności - czy jest jakiś sposób na zrobienie tego? – Atadj