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

[short_link]

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

 

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

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

 

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

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. اولین نفری باشید که دیدگاه خود را ثبت می کند!
« تغییر آدرس ورود به وردپرس بدون افزونه تصویر تغییر آدرس ورود به وردپرس بدون افزونه
حذف صفرها از قیمت در ایزی دیجیتال دانلود »
Clicky