Pemicu penyegaran untuk manajer media baru di 3.5

23

Saya mencoba mencari tahu bagaimana mungkin untuk 'menyegarkan' perpustakaan media dalam dialog media baru di 3.5. Saya menambahkan gambar dari pustaka gambar eksternal ke pustaka WordPress (melalui kombinasi tab / iFrame dalam dialog media) yang berfungsi dengan baik, tetapi saya harus menutup dan membuka kembali dialog untuk menampilkan gambar yang baru ditambahkan (yang memiliki berhasil diiklankan ke perpustakaan).

Saya tahu ada wp.media.editor.open()dan wp.media.editor.close()metode, tetapi saya tidak bisa mengatur untuk menemukan sort()atau refresh()(atau apa pun) di sumbernya. Sejujurnya, kode sumber bacaan yang cukup intens dan console.logsepertinya tidak banyak membantu dengan backbone.js. Ada ide?

Richard Sweeney
sumber
3
Satu lagi pertanyaan ke galeri "New Media Manager: The Great Unknown" . Dengan ritme berjalan, saya berharap dokumentasi lengkap dan kait di sekitar WP 3.7 ... Semua upvotes menunjukkan komunitas yang lapar.
brasofilo
Alih-alih fungsi refresh (), kita dapat menggunakan kombinasi fungsi wp.media.editor.close () dan wp.media.editor.open () untuk mencapai output yang diinginkan.
Vinod Dalvi
Dalam fitur-image-picker misalnya, ada saklar di baris wp-include / js / media-views.js 3644 untuk apakah perpustakaan media telah dimuat atau tidak. Tampaknya menjadi referensi wp.media.featuredImage.frame().views.get('.media-frame-content')[0].views.get("")[3].collection.lengthtetapi menetapkan bahwa panjang ke 0 tidak melakukan apa-apa.
NoBugs

Jawaban:

7

Cara yang benar untuk menyegarkan konten bingkai, seperti yang ditemukan di WP core, adalah sebagai berikut:

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

Anda harus selalu memeriksa konten yang tersedia, kalau tidak menyegarkan perpustakaan.

Tepuk tangan!

timocouckuyt
sumber
Di mana ini di WP core?
NoBugs
Apakah Anda yakin ini masih benar? Tampaknya wp.media.featuredImage.frame().options.selection.resetada tetapi tidak ada wp.media.featuredImage.frame().collectionmisalnya.
NoBugs
4

Butuh waktu beberapa hari, tetapi akhirnya saya menggali cukup banyak hal untuk mencari tahu:

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

Sepertinya harus ada cara yang lebih mudah tetapi itu bekerja untuk saya sementara itu!

Nicky Hajal
sumber
1
tampaknya sangat intuitif :) namun, ini berhasil !! TERIMA KASIH!!!
Andrej
3
baru saja menemukan cara "lebih resmi" untuk melakukannya:, wp.media.frame.content.get('gallery').collection.props.set({ignore: (+ new Date())});dalam hal ini saya menyegarkan gallerytab.
Jermim bilal
2
Sementara kedua perintah itu memicu penyegaran, setelah itu Anda tidak lagi dapat menambahkan gambar dalam modal :( perlu solusi lain untuk ini
Benjamin Intal
Ini masih jauh dari solusi ideal, tetapi perlu dicatat bahwa media-frame-contentkuncinya telah berubah dari 1 menjadi 2:wp.media.editor.get(wpActiveEditor).views._views[".media-frame-content"][0].views._views[""][2].collection.props.set({ignore:(+(new Date()))})
Ian
Untuk alasan di atas Anda lebih baik menggunakan versi yang lebih umum yang diposting di tempat lain dalam pertanyaan ini:wp.media.frame.content.get().collection.props.set({ignore: (+ new Date())});
Ian
1

Pembaruan 2019. Saya menemukan solusi yang lebih baik yang tidak merusak pengunggah:

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);
z1ad
sumber
0

apakah itu yang Anda cari?

wp.media.editor.remove('content');
wp.media.editor.add('content');
Rajeev Vyas
sumber
Tolong jelaskan mengapa itu bisa menyelesaikan masalah.
fuxia