Dapatkan url thumbnail dari pengunggah media


8

Saya ingin memilih gambar dari pengunggah media WordPress 3.5. Saya bisa mendapatkan URL gambar dengan kode berikut, tetapi mendapatkan gambar ukuran penuh. Saya ingin mendapatkan url gambar mini, bagaimana saya bisa mendapatkannya?

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

Jawaban:


8

Anda dapat men-debug hasil lampiran dengan:

console.log(attachment); 

dan jika ukuran thumbnail tersedia, Anda dapat mengambilnya menggunakan:

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

Ini adalah solusi yang sangat bagus tetapi sedikit koreksi bagi orang yang membaca di masa depan: url dapat ditemukan di attachment.attributes.sizes.thumbnail.url . Dalam ukuran ada juga pilihan lain yang tersedia seperti menengah , sedang_large dan penuh serta ukuran khusus.
AncientRo

0

Menemukan pertanyaan ini melakukan penelitian sendiri, dan akhirnya mengembangkan solusi yang lebih kaya yang saya pikir mungkin berharga.

Jika Anda ingin mengetahui url ukuran media yang dipilih oleh pengguna, maka kode berikut (kode jQuery lengkap di bawah) akan melakukannya untuk Anda:

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

Anda harus membuat panggilan ke server untuk menjalankan beberapa PHP.

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

Di mana $ id adalah id dari lampiran

attachment.attributes.id di fungsi pilih custom_uploader Anda akan memberi Anda nilai. Anda dapat mempostingnya kembali dengan panggilan ajax dan mendapatkan url thumbnail dengan cara itu.


Ini tidak benar.
Andy Mercer
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.