У меня проблема, которая меня расстраивает, у меня есть мультисайт WordPress, и я хочу, чтобы пользователи каждого сайта перенаправлялись в зависимости от их ролей, за исключением суперадминистратора.
Я хочу, чтобы администраторы go на страницу с названием панели инструментов (это работает) и подписчики на go на домашнюю страницу (это не так)
Я добавил следующий код в функции. php:
add_filter( 'login_redirect', 'wpse_159078_login_redirect' );
function wpse_159078_login_redirect( $redirect ) {
if( current_user_can( 'administrator' ) && ! current_user_can( 'manage_network' ) ) {
// if it's not a super admin that's logging in
$redirect = get_home_url() . "/dashboard";
/*
$page = get_page_by_title('dashboard');
$redirect = get_permalink($page->ID);*/
}else if(current_user_can( 'subscriber' ) && ! current_user_can( 'administrator' )){
$redirect = get_home_url();
}
return $redirect;
}
add_action( 'init', 'blockusers_init' );
function blockusers_init() {
if ( is_admin() && current_user_can( 'administrator' ) && ! current_user_can( 'manage_network' ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
wp_redirect( get_home_url() . "/dashboard");
exit;
}else if(current_user_can( 'subscriber' ) && !current_user_can( 'administrator' ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX )){
wp_redirect( get_home_url() );
exit;
}
}
странно, когда я все изменил так, чтобы администратор go перешел на домашнюю страницу, это работает, подписчики не могут, ошибка, которую я получаю в браузере, - это слишком много перенаправлений, и когда я отслеживаю перенаправления Я вижу, что домашняя страница перенаправляется на себя несколько раз,