Как запретить доступ к панели управления для определенных ролей пользователей?
Я хочу запретить определенным ролям пользователей доступ к панели управления http://www.openeye.net/wp-admin/. Я перенес и изменил стиль профилей пользователей на новую страницу, которая доступна на сайте. Как это можно реализовать?

Чтобы ограничить доступ подписчиков и участников к админ-панели:
function wpse23007_redirect(){
if( is_admin() && !defined('DOING_AJAX') && ( current_user_can('subscriber') || current_user_can('contributor') ) ){
wp_redirect(home_url());
exit;
}
}
add_action('init','wpse23007_redirect');
Надеюсь, это поможет. Каждая роль дает пользователю соответствующую capability (возможность), которая совпадает с именем роли, поэтому вы можете использовать любое название роли как capability.

Отлично, однако я получаю синтаксическую ошибку во второй строке.

Ой, извините; это было намеренно. Там должна была быть еще одна закрывающая в конце. Я добавил её в ответ.

Есть ли причина, почему это не работает с темой 2011 и плагином members?

Кажется, это не работает на сайтах сети. Есть идеи почему?

Вроде работает у меня на стандартной установке WordPress. Большое спасибо :-)

//Если роль пользователя Подписчик, он не может войти в админку
function wpse23007_redirect()
{
if( is_admin() && !defined('DOING_AJAX') && current_user_can('subscriber') )
{
wp_logout();
wp_redirect(home_url());
exit;
}
}
add_action('init','wpse23007_redirect');

Да, вам нужно использовать функцию current_user_can( $capability ). Вот официальная справка WordPress: https://codex.wordpress.org/Function_Reference/current_user_can

add_action('init', function(){
// Получаем URL для редиректа из HTTP_REFERER или домашнюю страницу
$redirect = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : home_url( '/' );
// Получаем текущего пользователя
$user = wp_get_current_user();
// Проверяем, что это не AJAX-запрос и пользователь имеет роль "подписчика"
if ( !defined('DOING_AJAX') && in_array( 'subscriber', (array) $user->roles ) ) {
// Выполняем редирект и завершаем выполнение скрипта
wp_redirect($redirect);
exit();
}
});
