Перенаправить зарегистрированного пользователя в зависимости от роли пользователя, если он пытается получить доступ к домашней странице?

Я хочу перенаправить каждого пользователя, в зависимости от его роли пользователя, который хочет получить доступ к домашней странице (ее страница моего приветственного входа).

Я не хочу перенаправлять пользователей сразу после входа в систему, но после того, как они вошли в систему, и если они, возможно, снова обратятся к домашней странице.

благодаря

Solutions Collecting From Web of "Перенаправить зарегистрированного пользователя в зависимости от роли пользователя, если он пытается получить доступ к домашней странице?"

Попробуйте что-то вроде этого. Также читайте о wp_redirect () тоже.

 function redirect_by_role(){ if (is_user_logged_in()) { $user = wp_get_current_user(); if (is_home()) { if ( in_array( 'author', (array) $user->roles ) ) { $redirect_url= ''; wp_redirect($redirect_url, 301); exit; } elseif( in_array( '**another_role_here**', (array) $user->roles ) ) { $redirect_url= ''; wp_redirect($redirect_url, 301); exit; } } } else { // Do what you want } } // Add the action with maximum priority add_action('init','redirect_by_role',0); 

Vucko, попробуйте изменить init hook на wp следующим образом:

 function redirect_by_role(){ if (is_user_logged_in()) { $user = wp_get_current_user(); if (is_home()) { if ( in_array( 'author', (array) $user->roles ) ) { $redirect_url= ''; wp_redirect($redirect_url, 301); exit; } elseif( in_array( '**another_role_here**', (array) $user->roles ) ) { $redirect_url= ''; wp_redirect($redirect_url, 301); exit; } } } else { // Do what you want } } // Add the action with maximum priority add_action('wp','redirect_by_role'); 

is_home() не работает с init hook. Он запускается после parse_query . Вы можете видеть приоритеты крючков здесь