3.5 মিডিয়া ম্যানেজারের জন্য ট্রিগার রিফ্রেশ করুন


23

আমি 3.5 মিডিয়া সংলাপে মিডিয়া লাইব্রেরিটিকে 'রিফ্রেশ' করা কীভাবে সম্ভব তা জানার চেষ্টা করছি। আমি একটি বাহ্যিক চিত্র গ্রন্থাগার থেকে ওয়ার্ডপ্রেস লাইব্রেরিতে (মিডিয়া সংলাপে একটি ট্যাব / আইফ্রেমে কম্বোর মাধ্যমে) ছবি যুক্ত করছি যা ঠিক কাজ করে তবে নতুন যুক্ত হওয়া চিত্রগুলি দেখানোর জন্য আমাকে ডায়লগটি বন্ধ করে আবার খুলতে হবে (যা রয়েছে সাফল্যের সাথে গ্রন্থাগারে যুক্ত করা হয়েছে)।

আমি জানি যে রয়েছে wp.media.editor.open()এবং wp.media.editor.close()পদ্ধতিগুলি, তবে উত্সটিতে একটি sort()বা refresh()(বা যা কিছু) খুঁজে পেতে আমি বেশ পরিচালনা করতে পারি না । সত্যই বলা যায়, উত্স কোডটি বেশ তীব্র পড়া এবং console.logসম্ভবত ব্যাকবোন.জেগুলি দিয়ে খুব বেশি সহায়তা করে না। কোন ধারনা?


3
গ্যালারীটিতে আরও একটি প্রশ্ন "নতুন মিডিয়া ম্যানেজার: দ্য গ্রেট অজানা" । যে ছন্দে এটি যায়, আমি পুরো ডকুমেন্টেশন এবং ডাব্লুপি 3.7 এর আশেপাশের হুকগুলি আশা করি ... সমস্ত উত্সব ক্ষুধার্ত সম্প্রদায়কে নির্দেশ করে।
brasofilo

রিফ্রেশ () ফাংশন পরিবর্তে, আমরা পছন্দসই আউটপুট অর্জনের জন্য wp.media.editor.close () এবং wp.media.editor.open () ফাংশনের সংমিশ্রণটি ব্যবহার করতে পারি।
বিনোদদলভি

উদাহরণস্বরূপ বৈশিষ্ট্যযুক্ত চিত্র-চয়নকারীতে, মিডিয়া লাইব্রেরিটি লোড হয়েছে কি না তার জন্য ডাব্লুপি-অন্তর্ভুক্ত / জেএস / মিডিয়া-ভিউস.জেএস লাইন 3644-এ একটি স্যুইচ রয়েছে। দেখে মনে হচ্ছে এটি উল্লেখ করা হচ্ছে wp.media.featuredImage.frame().views.get('.media-frame-content')[0].views.get("")[3].collection.lengthতবে দৈর্ঘ্য 0 থেকে সেট করা কিছুই করে না।
NoBugs

উত্তর:


7

ফ্রেমের বিষয়বস্তু রিফ্রেশ করার সঠিক উপায়, ডাব্লুপি কোরে পাওয়া যায় নিচের মতো:

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

আপনার সর্বদা সামগ্রীটি উপলব্ধ রয়েছে কিনা তা যাচাই করা উচিত, অন্যথায় লাইব্রেরিটি রিফ্রেশ করুন।

চিয়ার্স!


ডাব্লুপি কোর এ কোথায়?
NoBugs 16

আপনি কি নিশ্চিত যে এটি এখনও সঠিক? এটি 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ট্যাবটি রিফ্রেশ করছি ।
জেরিম বিলাল

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

কেন এটি সমস্যার সমাধান করতে পারে দয়া করে তা ব্যাখ্যা করুন ।
ফুসিয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.