3.5'deki yeni medya yöneticisi için yenilemeyi tetikle


23

3.5'deki yeni medya iletişim kutusundaki medya kitaplığını 'yenilemenin' mümkün olduğunu anlamaya çalışıyorum. Dış resim kitaplığından resimlerini WordPress kitaplığına ekliyorum (medya iletişim kutusundaki bir sekme / iFrame combo aracılığıyla), bu doğru çalışıyor , başarıyla kütüphaneye eklenmiştir).

Orada wp.media.editor.open()ve wp.media.editor.close()yöntemler olduğunu biliyorum , ancak kaynakta bir sort()veya refresh()(veya her neyse) bulmayı tam olarak başaramıyorum. Gerçeği söylemek gerekirse, kaynak kod oldukça yoğun bir okuma ve console.loggörünüşte backbone.js ile yardımcı olmuyor. Herhangi bir fikir?


3
"Yeni Medya Yöneticisi: Büyük Bilinmeyen" galerisine bir soru daha . Ritim devam ederse, tam bir belge bekliyorum ve WP 3.7'nin etrafındaki kancaları görüyorum ... Tüm yükselişler aç bir topluma işaret ediyor.
brasofilo

Refresh () işlevi yerine, istenen çıktıyı elde etmek için wp.media.editor.close () ve wp.media.editor.open () işlevinin birleşimini kullanabiliriz.
Vinod Dalvi

Örnek görüntü alıcısında, örneğin, medya kitaplığının yüklenip yüklenmediğine ilişkin wp-include / js / media-views.js satır 3644'te bir anahtar var. Referans veriyor gibi görünebilir wp.media.featuredImage.frame().views.get('.media-frame-content')[0].views.get("")[3].collection.lengthancak bu uzunluğu 0'a ayarlamak hiçbir şey yapmaz.
NoBugs

Yanıtlar:


7

WP çekirdeğinde bulunan çerçevenin içeriğini yenilemenin doğru yolu aşağıdaki gibidir:

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

İçeriğin her zaman kullanılabilir olup olmadığını kontrol etmelisiniz, aksi takdirde kütüphaneyi yenileyin.

Şerefe!


Bu WP çekirdeğinde nerede?
NoBugs,

Bunun hala doğru olduğundan emin misin? Var gibi görünüyor wp.media.featuredImage.frame().options.selection.resetama wp.media.featuredImage.frame().collectionörnek yok .
NoBugs

4

Birkaç gün sürdü, ancak sonunda bunu anlamaya yetecek şeyleri araştırdım:

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

Görünüşe göre daha kolay bir yol olmalı ama bu arada benim için çalışıyor!


1
çok sezgisel görünüyor :) yine de, bu işe yarıyor !! TEŞEKKÜR EDERİM!!!
Andrej

3
Sadece bunu yapmak için "daha resmi" bir yolunu buldu: wp.media.frame.content.get('gallery').collection.props.set({ignore: (+ new Date())});Bu durumda gallerysekmesini yeniliyoruz .
Jermim bilal

2
Her iki komut da bir yenileme tetiklese de, daha sonra modalda resim ekleyemezsiniz :( bunun için başka bir çözüme ihtiyacınız var
Benjamin Intal

Bu hala ideal bir çözüm olmaktan uzak, ancak media-frame-contentanahtarın 1'den 2'ye değiştiğini belirtmekte fayda var:wp.media.editor.get(wpActiveEditor).views._views[".media-frame-content"][0].views._views[""][2].collection.props.set({ignore:(+(new Date()))})
Ian

Yukarıdaki nedenden ötürü, bu soruya başka bir yerde yayınlanan daha genel sürümü kullanarak daha iyi durumda olursunuz:wp.media.frame.content.get().collection.props.set({ignore: (+ new Date())});
Ian

1

2019 güncellemesi. Yükleyiciyi bozmayan daha iyi bir çözüm buldum:

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

0

aradığın bu mu

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

Lütfen bunun sorunu neden çözebileceğini açıklayın .
fuxia
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.