Holen Sie sich die URL des Thumbnails vom Medien-Uploader

Ich möchte ein Bild aus dem WordPress 3.5 Media Uploader auswählen. Ich kann die Bild-URL mit dem folgenden Code abrufen, aber es wird das Bild in voller Größe erhalten. Ich möchte die Miniaturbild-URL erhalten, wie kann ich das bekommen?

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(); }); 

Solutions Collecting From Web of "Holen Sie sich die URL des Thumbnails vom Medien-Uploader"

Sie können das Ergebnis der Anlage folgendermaßen debuggen:

 console.log(attachment); 

und wenn die Miniaturgröße verfügbar ist, können Sie sie abrufen mit:

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

Ich fand diese Frage bei meiner eigenen Recherche und entwickelte schließlich eine reichere Lösung, von der ich dachte, dass sie wertvoll sein könnte.

Wenn Sie die URL der vom Benutzer ausgewählten Mediengröße kennen möchten, dann wird der folgende Code (vollständiger jQuery-Code unten) das für Sie tun:

 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.... } }); 

Sie müssten einen Aufruf an den Server machen, um PHP auszuführen.

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

Wobei $ id die ID des Anhangs ist

attachment.attributes.id in deiner custom_uploader select function gibt dir den Wert. Du könntest das mit einem Ajax-Aufruf posten und die Vorschau-URL auf diese Weise erhalten.