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?


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!


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!


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

0

apakah itu yang Anda cari?

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

Tolong jelaskan mengapa itu bisa menyelesaikan masalah.
fuxia
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.