WordPress 3.5 был выпущен недавно, я использовал систему загрузки медиа файлов WordPress через Thickbox и window.send_to_editor
для некоторых опций в моей теме WordPress (фоны, логотипы и т.д.).
Но, как вы знаете, WordPress интегрировал новый Media Manager, я хотел использовать эту новую функцию для загрузки изображений/файлов в качестве пользовательских полей. Поэтому я провел утро, чтобы найти способ получить желаемый результат.
Я нашел с этим решением, которое может быть полезно для некоторых из вас. Спасибо за отзыв о коде или любых улучшениях, которые вы планируете!
Пример HTML:
<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:
$('.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;
});
Если вы хотите увидеть все настройки, содержащиеся в переменной attachment
вы можете сделать console.log(attachment)
или alert(attachment)
.