ইতিমধ্যে পোস্ট করা তিনটি সমাধান সম্পর্কে আমার কাছে কোড মন্তব্য রয়েছে, তবে একটি সাধারণ মন্তব্যও
তারা একটি সাব-থিম পছন্দ উপস্থাপন করে: হয় হয় ব্যবহারকারীর স্ক্রিন অপশন চেকবক্স পছন্দকে ওভাররাইড করে; বা এটিকে সম্মান করুন তবে ব্যবহারকারী যদি অন্য মেটা_বক্সে এমনকি আপনার কোডটি ডব্লিউপি-তে থাকাকালীন চেকবক্সগুলি পরিবর্তন করে থাকে তবে আপনার কোডটিকে উপেক্ষা করুন। আপনার সমস্ত ব্যবহারকারী নতুন হলে সম্মানজনক পছন্দটি কেবল কার্যকর হবে বলে মনে হয়। সর্বোত্তম সমাধানটি হ'ল আপনার নির্দিষ্ট মেটা_বক্স ডিফল্ট ব্যবহারকারীর দ্বারা পরিবর্তন করা হয়েছে কিনা তা নির্ধারণ করার জন্য একটি কাস্টম ব্যবহারকারী বিকল্প সেট করা হবে এবং সেটিকে সম্মান করুন। না, আমি কোডটি লিখিনি! সহজ হওয়া উচিত ... :)
তিনটি সমাধান পোস্ট:
1. WraithKenny এর hidden_meta_boxes
সমাধান হ'ল ব্যবহারকারী_শক্তিকে ওভাররাইড করে। নোট করুন এটিতে সমস্ত পোস্টের প্রকার ('পোস্ট', 'পৃষ্ঠা', 'লিঙ্ক', 'সংযুক্তি', এবং কোনও কাস্টম পোস্টের প্রকারগুলি) রয়েছে covers আপনি এটি সুনির্দিষ্ট না করতে চাইলে তা ঠিক। আপনি আপনার add_meta_box()
কলগুলিতে পোস্ট টাইপ নির্দিষ্ট করেছেন । আপনি সেগুলির সাথে মেলে দেখার চেষ্টা করতে পারেন বা এটির সাথে ডানা মেলে যা মেলে না সেগুলি উপেক্ষা করা হবে। আপনি যদি ফিল্টারটিতে পোস্ট_ টাইপটি জানতে চান তবে আপনি অতিরিক্ত screen
প্যারামিটারটি ব্যবহার করতে পারেন :
add_filter('hidden_meta_boxes', 'foo_hidden_meta_boxes', 10, 2);
function foo_hidden_meta_boxes($hidden, $screen) {
$post_type= $screen->id;
switch ($post_type) {
// case 'post', 'page', 'link', 'attachment', and any custom post types
// $hidden[]= 'foo_box_id';
// /or/
// $hidden= array_diff($hidden, array('foo_box_id'));
}
return $hidden;
}
২. রার্স্ট যেমন বলেছেন, ব্যবহারকারী_পশনকে default_hidden_meta_boxes
সম্মান করে। হিসাবে hidden_meta_boxes
, আপনি পোস্ট_ টাইপ পৃথক করতে to স্ক্রিন প্যারামিটার ব্যবহার করতে পারেন।
৩. ড্রেবেবেলসের সেট_উজার_মেটাবক্স () ফাংশনও ব্যবহারকারী_পশনকে সম্মান করে। নোট করুন এটি 'পোস্ট' সম্পাদনা স্ক্রিনের জন্য হার্ড-কোডড। 'পৃষ্ঠা' সম্পাদনা স্ক্রিন এবং অন্যান্য পোস্ট_ টাইপগুলি পরিচালনা করতে এই লুপটিতে কোডটি মোড়ক করুন:
function set_user_metaboxes($user_id=NULL) {
$post_types= array( 'post', 'page', 'link', 'attachment' );
// add any custom post types here:
// $post_types[]= 'my_custom_post_type';
foreach ($post_types as $post_type) {
// These are the metakeys we will need to update
$meta_key= array(
'order' => "meta-box-order_$post_type",
'hidden' => "metaboxhidden_$post_type",
);
// The rest is the same as drebabels's code,
// with '*_user_meta()' changed to '*_user_option()'
// So this can be used without hooking into user_register
if ( ! $user_id)
$user_id = get_current_user_id();
// Set the default order if it has not been set yet
if ( ! get_user_option( $meta_key['order'], $user_id ) ) {
$meta_value = array(
'side' => 'submitdiv,formatdiv,categorydiv,postimagediv',
'normal' => 'postexcerpt,tagsdiv-post_tag,postcustom,commentstatusdiv,commentsdiv,trackbacksdiv,slugdiv,authordiv,revisionsdiv',
'advanced' => '',
);
update_user_option( $user_id, $meta_key['order'], $meta_value, true );
}
// Set the default hiddens if it has not been set yet
if ( ! get_user_option( $meta_key['hidden'], $user_id ) ) {
$meta_value = array('postcustom','trackbacksdiv','commentstatusdiv','commentsdiv','slugdiv','authordiv','revisionsdiv');
update_user_option( $user_id, $meta_key['hidden'], $meta_value, true );
}
}
}
হ্যাঁ, get_user_meta
হওয়া উচিত get_user_option
। একক-সাইটের জন্য এটি কোনও ব্যাপার নয়, এমনকি বহু-সাইটের জন্য এটিও সম্ভবত কার্যকর নয়। কেন: update_user_option
এর জন্য 'সত্য' গ্লোবাল প্যারামিটার রয়েছে তার জন্য ডাব্লুপি-অ্যাডমিন / অন্তর্ভুক্ত / অজ্যাক্স-ক্রিয়াকলাপগুলি দেখুন ।