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

۱۶ شهریور ۱۴۰۲ وردپرس #php

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

💬

شاید امروز جواب خیلی از سؤال‌ها را بتوان از AI گرفت، اما تولید مطالب تخصصی، تجربه‌محور و عمیق هنوز به انگیزه نیاز دارد. این نظرات و بازخوردهای شماست که به ما نشان می‌دهد ادامه دادن این مسیر ارزشمند است.

دیدگاه شما چیست؟

نظرات (0)


ارسال نظر

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

عضویت در شبکه‌های اجتماعی

جدیدترین مقالات و نکات برنامه‌نویسی را سریع تر از دیگران مطلع شوید.