我试图弄清楚如何在3.5版的新媒体对话中“刷新”媒体库。我正在将图像从外部图像库添加到WordPress库(通过媒体对话框中的tab / iFrame组合),效果很好,但是我必须关闭并重新打开对话框才能显示新添加的图像(已成功添加到库中。)

我知道有wp.media.editor.open()wp.media.editor.close()方法,但是我在源代码中找不到sort()refresh()(或其他任何方法)。实话实说,源代码非常精读,而console.log似乎对ebone.js并没有多大帮助。有什么想法吗?

评论

画廊的另一个问题“新媒体管理器:大未知”。按照节奏,我希望能看到WP 3.7的完整文档和说明...所有投票都表明社区饿了。

可以使用wp.media.editor.close()和wp.media.editor.open()函数的组合来代替refresh()函数,以实现所需的输出。

例如,在featured-image-picker中,wp-includes / js / media-views.js第3644行中是否有媒体库已加载的开关。它似乎正在引用wp.media.featuredImage.frame()。views.get('。media-frame-content')[0] .views.get(“”)[3] .collection.length,但是将其设置为长度为0无效。

#1 楼

WP核心中提供的刷新框架内容的正确方法如下:

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


您应始终检查内容是否可用,否则刷新库。

干杯!

评论


WP核心在哪里?

– NoBugs
2015年10月8日在16:04

您确定这仍然正确吗?似乎存在wp.media.featuredImage.frame()。options.selection.reset,但例如没有wp.media.featuredImage.frame()。collection。

– NoBugs
2015年10月9日在3:36



#2 楼

花了我几天的时间,但我最终还是想尽办法解决这个问题:

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


似乎必须有一个更简单的方法,但这对我有效其间!

评论


似乎很直观:)尽管如此,它仍然有效!!谢谢!!!

–安德烈(Andrej)
13年6月24日在18:58

刚刚找到了一种“更正式”的方式:wp.media.frame.content.get('gallery')。collection.props.set({ignore:(+ new Date())});,在这种情况下我正在刷新图库标签。

–Jermim bilal
2014年4月21日在17:31



虽然两个命令都触发刷新,但是之后您将无法再在模式中添加图像:(需要其他解决方案

–本杰明·因塔尔(Benjamin Intal)
14年6月21日在13:22

这仍然不是理想的解决方案,但是值得注意的是media-frame-content密钥已从1更改为2:wp.media.editor.get(wpActiveEditor).views._views [“。media-frame-content” ] [0] .views._views [“”] [2] .collection.props.set({ignore:(+(new Date()))})

–伊恩
16-09-23在12:35

由于上述原因,最好使用此问题中其他地方发布的更通用的版本:wp.media.frame.content.get()。collection.props.set({ignore:(+ new Date())}) ;

–伊恩
16-09-23在12:52

#3 楼

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


#4 楼

是您要寻找的东西吗?

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


评论


请解释为什么这可以解决问题。

– fuxia♦
13年2月26日在12:25