WP 3.5 media uploader API set selected item

I know how to use the new media uploader in WP 3.5 and integrate it with plugins and themes but I have a problem, say the user selected the image and the frame closed I want when he open it again the image user selected before being selected in the gallery or highlighted.

the codex doesn’t have any api doc about it

$button.on('click', function(e){
    // prevent default behavior
    e.preventDefault();
    if ( typeof file_frame != 'undefined' ) {
        file_frame.close();
    }

    // create and open new file frame
    file_frame = wp.media({
        //Title of media manager frame
        title: 'Select an Image',
        library: {
            type: 'image'
        },
        button: {
            //Button text
            text: 'Use Image'
        },
        //Do not allow multiple files, if you want multiple, set true
        multiple: false,
    });

    //callback for selected image
    file_frame.on('select', function() {
        var selected = [];
        if ( is_multiple ) {
            // multiple images selected
            var selection = file_frame.state().get('selection');
            selection.map(function(file) {
                selected.push(file.toJSON());
            });
        } else {
            // single image
            selected.push(file_frame.state().get('selection').first().toJSON());
        }

        // loop through selected images
        for (var i in selected) {
            console.log(selected[i]);
        }

    });

    // open file frame
    file_frame.open();
});

can anyone help

1 Answer
1

I found the solution from here:

https://stackoverflow.com/questions/13936080/pre-select-images-when-opening-wordpress-3-5-media-manager

And it works. Here’s my modification and this is using a single-image select media frame:

frame.on('open', function(){
    var selection = frame.state().get('selection');
    var selected = $('#image-id').val(); // the id of the image
    if (selected) {
        selection.add(wp.media.attachment(selected));
    }
});

Leave a Comment