it-swarm.com.de

Aktualisierung für neuen Medienmanager in 3.5 auslösen

Ich versuche herauszufinden, wie es möglich ist, die Medienbibliothek im neuen Mediendialog in 3.5 zu aktualisieren. Ich füge der WordPress-Bibliothek Bilder aus einer externen Bildbibliothek hinzu (über eine Registerkarte/iFrame-Kombination im Mediendialog), was in Ordnung ist, aber ich muss den Dialog schließen und erneut öffnen, um die neu hinzugefügten Bilder anzuzeigen (welche Wurde erfolgreich in die Bibliothek aufgenommen).

Ich weiß, dass es wp.media.editor.open()- und wp.media.editor.close()-Methoden gibt, aber es gelingt mir nicht, eine sort()- oder refresh()- (oder was auch immer) in der Quelle zu finden. Um ehrlich zu sein, der Quellcode liest sich ziemlich intensiv und console.log scheint bei backbone.js nicht viel zu helfen. Irgendwelche Ideen?

23
Richard Sweeney

Die korrekte Art, den Inhalt des Frames zu aktualisieren, wie im WP Core zu finden, ist wie folgt:

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

Sie sollten immer überprüfen, ob der Inhalt verfügbar ist, andernfalls aktualisieren Sie die Bibliothek.

Prost!

7
timocouckuyt

Hat ein paar Tage gedauert, aber ich habe mich endlich so weit durchgearbeitet, dass ich das herausgefunden habe:

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

Es scheint, als ob es einen einfacheren Weg geben muss, aber das funktioniert in der Zwischenzeit für mich!

4
Nicky Hajal

Update 2019. Ich habe eine bessere Lösung gefunden, die den Uploader nicht kaputt macht:

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

ist es, wonach du suchst

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