editable_roles
Дозволяє змінити список із ролями користувачів сайту, що запитується функцією editable_roles() .
Використання
add_filter( 'editable_roles', 'wp_kama_editable_roles_filter' );
/**
* Function for `editable_roles` filter-hook.
*
* @param array[] $all_roles Array of arrays containing role information.
*
* @return array[]
*/
function wp_kama_editable_roles_filter( $all_roles ){
// Filter...
return $all_roles;
}- $all_roles
(масив) Масив масивів, що містять інформацію про ролі. Де ключі масиву – це назва ролі (administrator, editor і т.д.), а значення – ім’я ролі, що відображається, і її можливості.
Приклад обробки даних дивіться в описі функції editable_roles() .
Приклади
#1 Виключимо зі списку ролей конкретні ролі
Нехай ми створили кілька додаткових ролей:
add_role('project_expert', 'Експерт');
add_role( 'project_moderator', 'Модератор');
add_role( 'project_tracker', 'Трекер');
add_role( 'project_tracker_fake', 'Трекер (непідтверджений)');
add_role('project_leader', 'Керівник');Це спрощений приклад реєстрації ролей, у ньому опущений момент присвоєння ролям повноважень. Як правильно створювати ролі WordPress дивіться на add_role() .
Тепер під час роботи з користувачами будуть виводитися такі списки:
Якщо у вас індивідуальний проект та дефолтні ролі WordPress не використовуються, то вони в цих списках тільки заважають – прихуємо їх.
add_filter( 'editable_roles', 'hide_some_roles' );
function hide_some_roles( $all_roles ) {
unset($all_roles['editor']);
unset( $all_roles['author'] );
unset($all_roles['contributor']);
unset( $all_roles['subscriber'] );
return $all_roles;
}Отримаємо список без цих ролей:
У цьому прикладі ми лише приховали зі списку певні ролі, але вони залишилися без змін та інший, з ними пов’язаний, функціонал залишився незмінним.
список змін
| З версії 2.8.0 | Введено. |



