web-dev-qa-db-fra.com

Comment obtenir une url d'image depuis la médiathèque

J'ai un identifiant de pièce jointe, mais j'ai besoin d'une URL. Comment puis-je obtenir une URL à partir de l'objet pièce jointe?

// When an image is selected, run a callback.
frame.on( 'select', function() {
    // Grab the selected attachment.
    var attachment = frame.state().get('selection').first();
    $('#' + id).val(attachment.id);
}); 

...

la fonction toJSON () le convertit. Maintenant ça marche.

jQuery(document).ready(function($) {
var frame;

// Build the choose from library frame.
$(document).on("click", ".upload_image_button", function() {
    var id = $(this).attr('id').replace('_b', '');  

    if ( frame ) {
        frame.open();
        return;
    }

    // Create the media frame.
    frame = wp.media.frames.meta_image_frame = wp.media({
        // Tell the modal to show only images.
        library: {
            type: 'image'
        },
    });

    // When an image is selected, run a callback.
    frame.on( 'select', function() {
        // Grab the selected attachment.
        attachment = frame.state().get('selection').first().toJSON();
        $('#' + id).val(attachment.url);
    });

    frame.open();
    });
});
2
Layka

Vous devez convertir la variable de pièce jointe en objet JSON à l'aide de toJSON (). Ensuite, vous pouvez sa propriété.

utilisation

attachment = frame.state().get('selection').first().toJSON();

au lieu de

attachment = frame.state().get('selection').first();
1
Ifty

Si vous avez un identifiant de pièce jointe, vous pouvez appeler la fonction wp_get_attachment_url pour obtenir l'URL de la pièce jointe.

<?php wp_get_attachment_url( $id ); ?>

wp_get_attachment_url function accepte l'ID.

Exemple d'utilisation ... pour l'ID de pièce jointe 12.

<?php echo wp_get_attachment_url( 12 ); ?>

Il produira quelque chose comme http://example.net/wp-content/uploads/filename

2
Robert hue