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