web-dev-qa-db-fra.com

Actualisation du déclencheur pour le nouveau gestionnaire de médias dans la version 3.5

J'essaie de comprendre comment il est possible "d'actualiser" la bibliothèque multimédia dans le nouveau dialogue multimédia dans la section 3.5. J'ajoute des images d'une bibliothèque d'images externe à la bibliothèque WordPress (via un onglet/combo iFrame dans le dialogue multimédia), ce qui fonctionne correctement, mais je dois fermer et rouvrir le dialogue pour afficher les images récemment ajoutées (qui ont été ajouté avec succès à la bibliothèque).

Je sais qu'il existe des méthodes wp.media.editor.open() et wp.media.editor.close(), mais je ne parviens pas à trouver une fonction sort() ou refresh() (ou autre) dans la source. À vrai dire, le code source est une lecture assez intense et console.log n'aide apparemment pas grand chose avec backbone.js. Des idées?

23
Richard Sweeney

La manière correcte d'actualiser le contenu du cadre, telle qu'elle est trouvée dans le noyau WP, est la suivante:

if(wp.media.frame.content.get()!==null){
   wp.media.frame.content.get().collection.props.set({ignore: (+ new Date())});
   wp.media.frame.content.get().options.selection.reset();
}else{
   wp.media.frame.library.props.set({ignore: (+ new Date())});
}

Vous devez toujours vérifier que le contenu est disponible, sinon actualisez la bibliothèque.

À votre santé!

7
timocouckuyt

Cela m'a pris quelques jours, mais j'ai finalement creusé suffisamment le chemin pour comprendre:

wp.media.editor.get(wpActiveEditor).views._views[".media-frame-content"][0].views._views[""][1].collection.props.set({ignore:(+(new Date()))})

On dirait qu'il doit y avoir un moyen plus facile mais ça marche pour moi en attendant!

4
Nicky Hajal

Mise à jour 2019. J'ai trouvé une meilleure solution qui ne casse pas le téléchargeur:

wp.media.frame.on('open', function() {
    if (wp.media.frame.content.get() !== null) {          
        // this forces a refresh of the content
        wp.media.frame.content.get().collection._requery(true);

        // optional: reset selection
        wp.media.frame.content.get().options.selection.reset();
    }
}, this);
1
z1ad

est-ce ce que vous cherchez

wp.media.editor.remove('content');
wp.media.editor.add('content');
0
Rajeev Vyas