Je suis le développeur du plug-in Advanced Custom Fields et j'espère que vous pourrez m'aider à résoudre un problème auquel je suis confronté.
J'ai un bouton où vous pouvez éditer une image. Ce bouton lancera un média modal WP 3.5 via la fonction wp_media ().
Le problème est que je veux présélectionner une image pour que ses détails soient chargés dans le panneau de la barre latérale.
Actuellement, je m'accroche au callback «open» et exécute du code qui remplit cette sélection, mais il est maladroit et efficace. Voici à quoi ça ressemble:
// _media is an object I am using
_media.frame = wp.media({
title : 'title',
multiple : false,
button : { text : 'button' }
});
// open
_media.frame.on('open',function() {
// add class
_media.frame.$el.closest('.media-modal').addClass('acf-media-modal acf-expanded');
// set selection
var selection = _media.frame.state().get('selection'),
attachment = wp.media.attachment( id );
attachment.fetch();
selection.add( attachment );
});
// Finally, open the modal
_media.frame.open();
Cela fonctionne correctement jusqu'à ce que l'utilisateur ouvre une autre fenêtre modale, sélectionne l'onglet de téléchargement, puis utilise le bouton d'édition que j'ai créé. Maintenant, le code échoue complètement car mon code repose sur le fait que le modal soit en mode "parcourir".
J'ai trouvé un code qui permuterait le cadre au mode navigation, il ressemble à ceci:
_media.frame.content.mode('browse');
Cela fonctionne de temps en temps mais le code suivant échoue. Comme s'il fallait un peu de temps pour le rendu avant que la pièce jointe puisse être ajoutée à la sélection ....
Il y a sûrement un meilleur moyen.
Merci de votre aide. Elliot
Réponses:
Voici le script:
J'utilise la fonction
loadImages
dans le script suivant pour charger les images attachées existantes via AJAX, puis il suffit de transmettre la fonction avec les ID des images et cela ouvre un modal pré-rempli.Et voici la fonction php qui gère la requête AJAX:
Je viens de copier l'extrait de mon framework WordPress, en espérant que cela ait un sens.
la source