اضافه کردن نقش جدید در وردپرس با فانکشن

[short_link]
برای اینکه بتونیم در وردپرس نقش سفارشی خودمون رو اضافه کنیم از add_role() استفاده کنیم . با این تابع وردپرس ، نقش خودمون رو تعریف می کنیم و دسترسی های و قابلیت های خودمون رو براش تعیین می کنیم . وقتی کاربر جدید در وردپرس اضافه می کنیم می تونیم نقشی که خودمون تعریف کردیم به کاربر بدیم . این نقش می تونه سردبیر، خبرنگار، فروشنده و یا هر عنوان دیگه ای باشه

با استفاده از نقش های سفارشی که ایجاد می کنیم می تونیم به هر نقش دسترسی های خاصی بدیم که در نقش های پیش فرض خود وردپرس وجود نداره و یا اینکه کلا بر اساس نیاز سایت و یا کاربران سایت، نقش های جدیدمون رو اضافه کنیم

 

نقش های جدید در وردپرس

نقش های جدید در وردپرس

 

تابع اضافه کردن نقش جدید در وردپرس :

add_role( string $role, string $display_name, bool[] $capabilities = array() )
add_role( $role, $display_name, $capabilities );

با استفاده از کد پایین یک نقش جدید دقیقا مشابه با مدیرکل با همون سطح از اختیارات و قابلیت ها ایجاد میشه.

 add_role( 'superintendent', 'Superintendent', get_role( 'administrator' )->capabilities );

یک نمونه دیگه ساخت نقش سفارشی در وردپرس :

add_role(
    'guest_author',
    __( 'Guest Author', 'testdomain' ),
    array(
        'read'         => true,  // true allows this capability
        'edit_posts'   => true,
        'delete_posts' => false, // Use false to explicitly deny
    )
);

لیست کامل قابلیت های هر سطح کاربری :

Super Admin

=========================
create_sites
delete_sites
manage_network
manage_sites
manage_network_users
manage_network_plugins
manage_network_themes
manage_network_options
upload_plugins
upload_themes
upgrade_network

setup_network

Super Admin + Administrator

==========================================
activate_plugins (single site or enabled by network setting)
create_users (single site)
delete_plugins (single site)
delete_themes (single site)
delete_users (single site)
edit_files (single site)
edit_plugins (single site)
edit_theme_options
edit_themes (single site)
edit_users (single site)
export
import

Super Admin + Administrator

=============================================
install_plugins (single site)
install_themes (single site)
list_users
manage_options
promote_users
remove_users
switch_themes
update_core (single site)
update_plugins (single site)
update_themes (single site)
edit_dashboard
customize
delete_site

Super Admin + Administrator + Editor

====================================================
moderate_comments
manage_categories
manage_links
edit_others_posts
edit_pages
edit_others_pages
edit_published_pages
publish_pages
delete_pages
delete_others_pages
delete_published_pages
delete_others_posts
delete_private_posts
edit_private_posts
read_private_posts
delete_private_pages
edit_private_pages
read_private_pages
unfiltered_html (single site)
unfiltered_html

Super Admin + Administrator + Editor + Author

==========================================================
edit_published_posts
upload_files
publish_posts
delete_published_posts

Super Admin + Administrator + Editor + Author + Contributor

==========================================================
edit_posts
delete_posts

Super Admin + Administrator + Editor + Author + Contributor + Subscriber

======================================================================
read

بااستفاده از این فانکشن می تونیم در هر جای وب سایت که نیاز بود نقش کاربر لاگین شده در وردپرس رو دریافت و نمایش بدیم


function wk_get_current_user_roles($user_id= null) {
if(!isset($user_id)){
 if( is_user_logged_in() ) {
 $user = wp_get_current_user();
  $roles = ( array ) $user->roles;
 //return $roles; 
 // This returns an array
 // Use this to return a single value
   return $roles[0];
 }
 else{   return array(); }
 } else {
    // Get the user object.
$user = get_userdata( $user_id );

// Get all the user roles as an array.
$user_roles = ( array ) $user->roles; 
     
    return $user_roles[0];  
     
 }
}


 echo  wk_get_current_user_roles(6)."<br>";
 echo  wk_get_current_user_roles();

(0) دیدگاه برای این پست ثبت شده
دیدگاه خود را بفرستید
  1. اولین نفری باشید که دیدگاه خود را ثبت می کند!
« تغییر آدرس ورود به وردپرس بدون افزونه
اضافه کردن لایسنس ژاکت و مستندات ژاکت گارد »