برای طرح سوال و دسترسی به آموزش ها  کانال ما در تلگرام بپویندید  

تعریف دسترسی برای یک کاستوم پست تایپ

گاهی اوقات نیاز داریم دسترسی تعریق کنیم که یک کاربر فقط به یک پست تایپ خاص دسترسی داشته باشد.برای این کار با استفاده از خاصیت capabilities در register_post_type برای ان استفاده میکنیم مقدار پیشفرض این خاصیت

‘capabilities’ => array(
‘edit_post’ => ‘edit_post’,
‘read_post’ => ‘read_post’,
‘delete_post’ => ‘delete_post’,
‘edit_posts’ => ‘edit_posts’,
‘edit_others_posts’ => ‘edit_others_posts’,
‘publish_posts’ => ‘publish_posts’,
‘read_private_posts’ => ‘read_private_posts’,
‘create_posts’ => ‘create_posts’,
),

نام قابلیت جدید را persian میگذاریم

 

 

$args = array(
‘public’ => true,
‘labels’ => array(
‘name’ => ‘پست تایپ’,
),
‘menu_icon’ => ‘dashicons-book’,
‘show_in_menu’ => true,
‘capabilities’ => array(
‘read_post’ => ‘read_persian’,
‘edit_post’ => ‘edit_persian’,
‘edit_posts’ => ‘edit_persians’,
‘edit_others_posts’ => ‘edit_other_persians’,
‘publish_posts’ => ‘publish_persians’,
‘read_private_posts’ => ‘read_private_persians’,
‘delete_post’ => ‘delete_persian’
)
);
register_post_type( ‘post_type’, $args );

 

خب حالا کافیه این دسترسیها رو به نقش یا نقشهای مورد نظرمون بدیم مثلا میخوایم این دسترسی رو به کاربرها با نقش ادمین و نقشی که ساختیم بنام پشتیبان بدیم

 

$roles = [‘administrator’,’support’];
foreach($roles as $role){
$role = get_role($role);
$role->add_cap( ‘read_persian’);
$role->add_cap( ‘edit_persian’ );
$role->add_cap( ‘edit_persians’ );
$role->add_cap( ‘edit_other_persians’ );
$role->add_cap( ‘edit_published_persians’ );
$role->add_cap( ‘publish_persians’ );
$role->add_cap( ‘read_private_persians’ );
$role->add_cap( ‘delete_persian’ );
}


انتشار

در

,

توسط

برچسب‌ها:

نظرات

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *