Как запретить вход в аккаунт по роли?
add_filter('authenticate','filter_function_name_4601');
function filter_function_name_4601($user){
	if(isset($_POST['log'])){
	$username=$_POST['log'];
	if(isset($username)){$user=get_user_by('login',$username);$user_data=get_object_vars($user);}	
	if(isset($user_data)){$userId=$user_data["ID"];$u_meta=get_userdata($userId);$u_roles=$u_meta->roles;}
	}	
	if(!empty($u_roles)&&(in_array('administrator',$u_roles,true)||in_array('editor',$u_roles,true))){//перебираем роли. которые хотим запретить
	$Who=in_array('administrator',$u_roles,true)?__('Администраторам','VAB'):__('Редакторам','VAB');
	wp_die($Who.' '.__('авторизация запрещена','VAB'));//пишем месседж для них
	}else{
	return $user;
	}
}
Результат, смотря кто ломится


через username
add_filter('authenticate','filter_function_name_4601',10,3);
function filter_function_name_4601($user,$username,$password){
	if($username){
	if(isset($username)){$user=get_user_by('login',$username);$user_data=get_object_vars($user);}	
	if(isset($user_data)){$userId=$user_data["ID"];$u_meta=get_userdata($userId);$u_roles=$u_meta->roles;}
	}	
	if(!empty($u_roles)&&(in_array('administrator',$u_roles,true)||in_array('editor',$u_roles,true))){//перебираем роли. которые хотим запретить
	$Who=in_array('administrator',$u_roles,true)?__('Администраторам','VAB'):__('Редакторам','VAB');
	wp_die($Who.' '.__('авторизация запрещена','VAB'));//пишем месседж для них
	}else{
	return $user;
	}
}
это, если разрабы завтра log поменяют на что-то другое...
Вариант первый: с помощью плагина Remove Dashboard Access. Скачать его можно здесь: https://wordpress.org/plugins/remove-dashboard-acc...

Вариант второй: Добавьте следующий код в файл functions.php Вашей активной темы. Вместо administrator вставляете нужную вам роль. Пользователь попытавшийся зайти в админ панель Wordpress получит сообщение о 404 ошибке.

function true_wp_admin_block() {
	if (!current_user_can('administrator')) { // если не администратор
		header('HTTP/1.0 404 Not Found');
		exit();
	}	
}
add_action('admin_menu', 'true_wp_admin_block');

В WordPress по умолчанию уже существует 6 групп пользователей:


Super Admin — суперадминистратор, который имеет право управлять сетью сайтов.
Administrator — администратор.
Editor — редактор, может публиковать и редактировать посты других пользователей.
Author — автор, может публиковать и редактировать собственные посты.
Contributor — участник, может писать и отправлять свои посты на модерацию.
Subscriber — подписчик, всё, что он может — это редактировать свой профиль.
