3.5 में नए मीडिया मैनेजर के लिए ट्रिगर ताज़ा


23

मैं यह पता लगाने की कोशिश कर रहा हूं कि 3.5 में नए मीडिया संवाद में मीडिया लाइब्रेरी को 'रिफ्रेश' करना कैसे संभव है। मैं एक बाहरी छवि लाइब्रेरी से वर्डप्रेस लाइब्रेरी (मीडिया संवाद में टैब / iFrame कॉम्बो के माध्यम से) जोड़ रहा हूं जो ठीक काम करता है, लेकिन मुझे नए जोड़े गए चित्रों को दिखाने के लिए संवाद को बंद करना और फिर से खोलना होगा (जिसमें है सफलतापूर्वक पुस्तकालय में प्रवेश किया गया है)।

मुझे पता है कि तरीके wp.media.editor.open()और wp.media.editor.close()तरीके हैं, लेकिन मैं स्रोत में sort()या refresh()(या जो भी) खोजने के लिए काफी प्रबंधन नहीं कर सकता । सच कहा जाए, तो स्रोत कोड बहुत तीव्र है पढ़ने और console.logप्रतीत होता है कि backbone.js के साथ ज्यादा मदद नहीं करता है। कोई विचार?


3
गैलरी का एक और प्रश्न "न्यू मीडिया मैनेजर: द ग्रेट अनजान" । ताल द्वारा यह जाता है, मुझे WP 3.7 के आसपास पूर्ण प्रलेखन और हुक की उम्मीद है ... सभी उत्थान एक भूखे समुदाय का संकेत देते हैं।
ब्रासोफिलो

ताज़ा () फ़ंक्शन के बजाय, हम वांछित आउटपुट प्राप्त करने के लिए wp.media.editor.close () और wp.media.editor.open () फ़ंक्शन के संयोजन का उपयोग कर सकते हैं।
विनोद दलवी

उदाहरण के लिए फ़ीचर्ड-इमेज-पिकर में, wp-शामिल / 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 16

क्या आप सुनिश्चित हैं कि यह अभी भी सही है? यह प्रतीत होता wp.media.featuredImage.frame().options.selection.resetहै लेकिन wp.media.featuredImage.frame().collectionउदाहरण के लिए नहीं है।
NoBugs 3

4

मुझे कुछ दिनों के लिए ले लिया, लेकिन मैं अंत में यह पता लगाने के लिए पर्याप्त चीजों के माध्यम से अपना रास्ता खोद लिया:

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

लगता है कि वहाँ एक आसान तरीका होना चाहिए, लेकिन इस बीच में मेरे लिए काम करता है!


1
बहुत सहज लगता है :) फिर भी, यह काम करता है !! धन्यवाद!!!
Andrej

3
बस इसे करने के लिए "अधिक आधिकारिक" तरीका मिला: wp.media.frame.content.get('gallery').collection.props.set({ignore: (+ new Date())});इस मामले में, मैं galleryटैब को ताज़ा कर रहा हूं ।
जेर्मिम बिलल

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

0

क्या यह आप के लिए देख रहे हैं

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

कृपया बताएं कि समस्या का समाधान क्यों हो सकता है।
FUXIA
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.