3.5の新しいメディアダイアログで、メディアライブラリを「更新」する方法について説明します。私は外部メディアライブラリからWordPressライブラリにメディアダイアログのタブ/ iFrameコンボを通して画像を追加していますが、新しく追加された画像を表示するにはダイアログを閉じて再度開く必要があります(これは_)haveライブラリに追加されました。
私はwp.media.editor.open()
とwp.media.editor.close()
メソッドがあることを知っています、しかし私はソースでsort()
かrefresh()
(あるいは何でも)を見つけることがどうにもできません。実のところ、ソースコードはかなり熱心に読んでいて、console.log
はbackbone.jsにはあまり役立たないようです。何か案は?
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.media.editor.get(wpActiveEditor).views._views[".media-frame-content"][0].views._views[""][1].collection.props.set({ignore:(+(new Date()))})
もっと簡単な方法がなければならないように思えますが、それはそれまでの間私のために働きます!
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);
それはあなたが探しているものです。
wp.media.editor.remove('content');
wp.media.editor.add('content');