WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

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

Позволяет изменить список с ролями пользователей сайта, запрашиваемый функцией editable_roles().

Использование

add_filter( 'editable_roles', 'filter_function_name_2384' );
function filter_function_name_2384( $all_roles ){
	// Фильтруем...

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

Где вызывается хук

get_editable_roles()
editable_roles
wp-admin/includes/user.php 269
$editable_roles = apply_filters( 'editable_roles', $all_roles );

Где используется хук (в ядре WP)

Использование не найдено.
campusboy 3409youtube.com/c/wpplus
Создатель YouTube канала wp-plus, на котором делюсь своим опытом. Активный пользователь wp-kama.ru. WordPress-разработчик. Разработка сайтов и лендингов. Доработка существующих проектов. Сопровождение ресурсов.
Редакторы: Kama 7534
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться