2014-02-19 82 views
1

我需要在Wordpress中動態授予用戶特定角色(編輯者,管理員等)及其所有功能,但我不想更新他們在數據庫中的角色(以便他們下次來回來後,他們會有他們原來的角色)。我怎麼能這樣做呢?我可以在Wordpress中臨時更改用戶的角色嗎?

+0

http://wordpress.stackexchange.com/questions/53230/temporary-capability-for-current-user-can – berentrom

+0

這是正確的一步方向,但我必須手動覆蓋所有的功能嗎?我可以輕鬆地使用此功能返回給定角色的所有功能嗎?例如,如果我想將用戶的功能設置爲編輯器的功能,是否必須手動設置與編輯器相關的所有功能? – Matt

回答

1

這裏是我落得這樣做:

add_filter('user_has_cap', 'override_caps'); 

function override_caps($allcaps){ 

    if(...){ // When to override caps 

     $role_name = 'administrator'; 
     $role = get_role($role_name); // Get the role object by role name 
     $allcaps = $role->capabilities; // Get the capabilities for the role 
     $allcaps[$role_name] = true;  // Add role name to capabilities 

    } 

    return $allcaps; 

} 
相關問題