3.5での新しいメディアマネージャーの更新のトリガー


23

3.5の新しいメディアダイアログでメディアライブラリを「更新」する方法を理解しようとしています。これは(私は大丈夫動作します(メディア対話のタブ/ iFrameのコンボを経由して)WordPressのライブラリに外部の画像ライブラリから画像を追加しているが、私は新しく追加された画像を表示するために対話を閉じて再度開く必要があり持っています正常にライブラリに追加されました)。

私はそこにいることを知っているwp.media.editor.open()wp.media.editor.close()方法が、私はかなり見つけるために管理することができないsort()か、refresh()ソースに(または何でも)。正直なところ、ソースコードは非常に熱心に読まれconsole.logており、backbone.jsにはあまり役に立たないようです。何か案は?


3
ギャラリーへのもう1つの質問「New Media Manager:The Great Unknown」。それが進むリズムによって、私は完全なドキュメントとWP 3.7の周りのフックを期待しています...すべての賛成票は空腹のコミュニティを示しています。
ブラソフィロ

refresh()関数の代わりに、wp.media.editor.close()とwp.media.editor.open()関数の組み合わせを使用して、目的の出力を実現できます。
ヴィノッドダルビ

たとえば、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に設定しても何も起こりません。
NoBugs

回答:


7

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

これはまだ正しいですか?wp.media.featuredImage.frame().options.selection.reset存在するようですが、wp.media.featuredImage.frame().collection例えばありません。
NoBugs

4

数日かかりましたが、私はついにこれを理解するのに十分なことを試しました。

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

もっと簡単な方法があるに違いないようですが、それは私にとってはうまくいきます!


1
とても直感的なようです:)それにもかかわらず、これは動作します!! ありがとうございました!!!
アンドレジュ

3
「もっと公式な」方法を見つけたところwp.media.frame.content.get('gallery').collection.props.set({ignore: (+ new Date())});ですgallery。この場合、タブを更新しています。
ジャーミムビラル14

2
両方のコマンドがトリガーにリフレッシュを行いますが、その後、あなたはもうモーダルで画像を追加することはできません:(これに別の解決策必要
ベンジャミン・インタール

これはまだ理想的なソリューションから遠いですが、それの注目に値する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()))})
イアン・

上記の理由から、あなたがより一般的なバージョンを使用したほうが良いですが、この質問の他の場所で掲示される:wp.media.frame.content.get().collection.props.set({ignore: (+ new Date())});
イアン・

1

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.