触发3.5中新媒体管理器的刷新

时间:2013-01-04 作者:Richard Sweeney

我想知道如何在3.5的新媒体对话中“刷新”媒体库。我正在将外部图像库中的图像添加到WordPress库中(通过媒体对话框中的tab/iFrame组合),这可以正常工作,但我必须关闭并重新打开对话框才能显示新添加的图像(这些图像已成功添加到库中)。

我知道有wp.media.editor.open()wp.media.editor.close() 方法,但我无法找到sort()refresh() (或其他)来源。说实话,源代码的阅读量相当大console.log 似乎对脊梁骨没有多大帮助。js。有什么想法吗?

4 个回复
SO网友:timocouckuyt

刷新框架内容的正确方法(如WP core中所示)如下所示:

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())});
}
您应该始终检查内容是否可用,否则请刷新库。

干杯

SO网友:Nicky Hajal

我花了几天时间,但我终于找到了解决问题的办法:

wp.media.editor.get(wpActiveEditor).views._views[".media-frame-content"][0].views._views[""][1].collection.props.set({ignore:(+(new Date()))})
似乎有一个更简单的方法,但这对我来说是可行的!

SO网友:z1ad

2019年更新。我找到了一个不会破坏上传程序的更好解决方案:

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

SO网友:Rajeev Vyas

这就是你要找的吗

wp.media.editor.remove(\'content\');
wp.media.editor.add(\'content\');

结束