Intereting Posts
разделение столбцов на две колонки Разъяснение по auth_redirect () Создайте настройку на бэкэнд, чтобы печатать только выбранные категории в интерфейсе Как создать html-теги с помощью коротких кодов? Откройте односпальную почту WordPress в лайтбокс без заголовка и нижнего колонтитула Прошивка переходного API – очистка от обновления расширенный пейджинг в wordpress Пользовательские поля PHP foreach loop Как разрешить пользователям менять язык сайта? Как получить список только пользовательских таксономий? Как отображать значения user_nicename и usermeta по пользовательскому запросу в WordPress? Удаление ведущих нулей из пользовательской структуры постоянной ссылки Разбиение страниц на обычные (стандартные) сообщения на странице с пользовательским циклом? Классы и функции, связанные с сериализацией и несериализацией wp_deregister_style с переменной md5?

Получить URL-адрес эскиза из медиа-загрузчика

Я хочу выбрать изображение из медиа-загрузчика WordPress 3.5. Я могу получить URL-адрес изображения со следующим кодом, но он получает изображение полного размера. Я хочу получить URL-адрес эскиза изображений, как я могу это получить?

var custom_uploader; $('.upload-image').click(function(e) { e.preventDefault(); if (custom_uploader) { custom_uploader.open(); return; } custom_uploader = wp.media.frames.file_frame = wp.media({ title: 'Choose Image', button: { text: 'Choose Image' }, multiple: false }); //When a file is selected, grab the URL custom_uploader.on('select', function() { attachment = custom_uploader.state().get('selection').first().toJSON(); var abc = attachment.url; //this is full image url. alert (abc); }); custom_uploader.open(); }); 

Вы можете отлаживать результат вложения:

 console.log(attachment); 

и если доступный размер эскиза вы можете получить, используя:

  var thumb = attachment.sizes.thumbnail.url; alert(thumb); 

Нашел этот вопрос, выполнив мои собственные исследования, и в итоге разработал более богатое решение, которое, как я думал, может быть ценным.

Если вы хотите узнать URL-адрес выбранного медиафайла, следующий код (полный код jQuery ниже) сделает это для вас:

 jQuery(function($) { // Bind to my upload butto $(document).on('click', 'a.custom-media-upload', function() { customUpload($(this)); return false; }); function customUpload(el) { formfield = $(el); custom_media = true; var _orig_send_attachment = wp.media.editor.send.attachment; wp.media.editor.send.attachment = function(props, attachment) { if ( custom_media ) { formfield = renderUpload(formfield, attachment, props); } else { return _orig_send_attachment.apply( this, [props, attachment] ); } } wp.media.editor.open(1); } function renderUpload(field, attachment, props) { // This gets the full-sized image url var src = attachment.url; // Get the size selected by the user var size = props.size; // Or, if you'd rather, you can set the size you want to get: // var size = 'thumbnail'; // or 'full' or 'medium' or 'large'... // If the media supports the selected size, get it if (attachment.sizes[size]) { src = attachment.sizes[size].url; } // Do what you want with src here.... } }); 

Вам нужно будет позвонить на сервер, чтобы запустить некоторый PHP.

 $thumb_src = wp_get_attachment_image_src( $id, 'thumbnail' ); 

Где $ id – идентификатор вложения

attachment.attributes.id в вашей функции select_uploader select даст вам значение. Вы можете отправить это обратно с помощью ajax-вызова и получить эскиз эскиза таким образом.