আমি "wp_inactive_widgets" সাইডবার থেকে উইজেট সংখ্যা সর্বোচ্চ 10 এ সীমাবদ্ধ করার চেষ্টা করছি, কারণ উইজেটগুলির প্রশাসক পৃষ্ঠাটি অবিশ্বাস্যভাবে ধীর:
add_filter('pre_update_option_sidebars_widgets', 'cleanup_inactive_widgets', 10, 2);
function cleanup_inactive_widgets($new, $old){
if(!empty($new['wp_inactive_widgets']) && count($new['wp_inactive_widgets']) > 10)
$new['wp_inactive_widgets'] = array_slice($new['wp_inactive_widgets'], -10, 10);
return $new;
}
এটি স্পষ্টতই কাজ করে, তবে সমস্যাটি হ'ল উইজেট উদাহরণ বিকল্পগুলি ডাটাবেসে এখনও রয়ে যায়, যদি উইজেট উদাহরণটি সাইডবারের ভিতরে না থাকে বা না থাকে ...
কেউ কি উইজেটের বিকল্পগুলি অপসারণের কোনও উপায় জানেন?
আমি একটি সমাধান খুঁজে পেয়েছি:
সম্পাদনা করুন: নির্দিষ্ট পরিস্থিতিতে এটি অন্যান্য সাইডবারগুলি থেকেও উইজেটগুলি সরিয়ে ফেলবে বলে মনে হচ্ছে, কী কারণে এটি ঘটছে তা আমি নিশ্চিত নই ...
if(!empty($new['wp_inactive_widgets']) && count($new['wp_inactive_widgets']) > 10){
// find out which widget instances to remove
$removed_widgets = array_slice($new['wp_inactive_widgets'], 0, -10);
// remove instance options
foreach($removed_widgets as $widget_id)
if(isset($GLOBALS['wp_registered_widgets'][$widget_id])){
$instance = $GLOBALS['wp_registered_widgets'][$widget_id]['callback'][0]->number;
$option_name = $GLOBALS['wp_registered_widgets'][$widget_id]['callback'][0]->option_name;
$options = get_option($option_name); // get options of all instances
unset($options[$instance]); // remove this instance's options
update_option($option_name, $options);
}
// keep only the last 10 records from the inactive widgets area
$new['wp_inactive_widgets'] = array_slice($new['wp_inactive_widgets'], -10, 10);
}
return $new;
1
আপনি কি এটি এ হিসাবে লিখতে পারেন এবং এটি গ্রহণযোগ্য হিসাবে চিহ্নিত করতে পারেন? ধন্যবাদ!
—
কায়সার
না কারণ আমি খুঁজে পেয়েছি এটি সঠিকভাবে কাজ করছে না। এটি অন্য
—
সাইডবারগুলি
তারপরে আপনার কিউএম থেকে "আমি একটি সমাধান খুঁজে পেয়েছি" সরিয়ে ফেলা উচিত?
—
কায়সার
আপডেট
—
প্রশ্ন.আমার
আপনি কি কোনও
—
কায়সার
if ( is_admin() && /* page does here */ )
বিবৃতিতে এটি মোড়ানোর চেষ্টা করেছেন? আমার অনুমানটি হ'ল আপনি বিশ্বব্যাপী প্রতিটি অনুরোধে এই উইজেটগুলি সরিয়ে ফেলছেন। ঠিক আছে: সম্পাদনা করুন। এটি সম্পর্কে কিছু চিন্তা করার পরে, আপনার সমস্যা হতে পারে আপনি update_option
বিশ্বব্যাপী অ্যাক্সেসযোগ্য যা ব্যবহার করেন (উইজেটগুলির জন্য সঠিক অভ্যন্তরগুলি জানেন না)। হতে পারে আপনি একটি কাস্টম সীমিত উইজেট বিকল্প আপডেট করতে পারেন এবং হস্তক্ষেপ পেতে আপনার কাস্টম বিকল্পের সাথে নিষ্ক্রিয় উইজেট অঞ্চলকে "ফিড" করতে পারেন।