editable_roles хук-фільтрWP 2.8.0

Дозволяє змінити список із ролями користувачів сайту, що запитується функцією 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() .

Приклади

0

#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Введено.

Де викликається хук

editable_roles

Де використовується хук у WordPress

Використання не знайдено.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *