گاهی اوقات نیاز داریم دسترسی تعریق کنیم که یک کاربر فقط به یک پست تایپ خاص دسترسی داشته باشد.برای این کار با استفاده از خاصیت 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’ );
}
دیدگاهتان را بنویسید لغو پاسخ