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?
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!
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!
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);
ist es, wonach du suchst
wp.media.editor.remove('content');
wp.media.editor.add('content');