Ottieni l'URL della miniatura dall'autore del caricamento multimediale


8

Voglio selezionare l'immagine dall'uploader multimediale di WordPress 3.5. Posso ottenere l'URL dell'immagine con il seguente codice, ma ottiene l'immagine a dimensione intera. Voglio ottenere l'URL dell'immagine di anteprima, come posso ottenerlo?

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

Risposte:


8

È possibile eseguire il debug del risultato dell'allegato tramite:

console.log(attachment); 

e se la dimensione della miniatura disponibile è possibile recuperarla utilizzando:

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

Questa è un'ottima soluzione, ma una piccola correzione per le persone che leggono in futuro: l'URL è disponibile in allegato.attributes.sizes.thumbnail.url . Nelle taglie sono disponibili anche altre opzioni come media , media_grossa e dimensioni complete e personalizzate.
AncientRo,

0

Ho trovato questa domanda facendo le mie ricerche e ho finito per sviluppare una soluzione più ricca che pensavo potesse essere preziosa.

Se vuoi conoscere l'URL della dimensione del supporto selezionata dall'utente, il seguente codice (codice jQuery completo di seguito) lo farà per te:

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

-3

Dovresti effettuare una chiamata al server per eseguire alcuni PHP.

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

Dove $ id è l'id dell'allegato

attach.attributes.id nella funzione di selezione custom_uploader ti darà il valore. Potresti postarlo indietro con una chiamata Ajax e ottenere l'URL delle miniature in quel modo.


Questo è semplicemente errato.
Andy Mercer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.