Перенаправление входа WordPress в соответствии с ролью пользователя

В моем приложении пользователю необходимо выполнить 1-й логин и затем получить доступ к веб-сайту.

На моем сайте три роли пользователя

  1. администратор
  2. редактор
  3. участник

Пользователь может войти в систему

http://example.com/wordpress/wp-login.php 

Нет логина из любого шаблона темы.

Я нашел этот код, но он не работает

 function my_login_redirect_contributors() { if ( current_user_can('contributor') ){ return 'url-to-redirect-to'; } } add_filter('login_redirect', 'my_login_redirect_contributors'); 

Примечание. Я не хочу использовать плагин, например, «Перенаправление входа в Peter». Я хочу достичь этого, настроив код ядра wp на фильтр.

Solutions Collecting From Web of "Перенаправление входа WordPress в соответствии с ролью пользователя"

Вы неправильно используете фильтр. Если вы получили более одного @param , тогда вы должны указать их при добавлении фильтра.

 function wpse40745_redirect_on_login( $redirect_to, isset( $_REQUEST['redirect_to'] ), $user ) { # uncomment the following line if it's not working and replace $user->roles[0] with something that works // echo '<pre>'; print_r( $user ); echo '</pre>'; exit; if ( in_array( $user->roles[0], array( 'contributer', 'whatever_other_role ) ) ) return home_url(); return $redirect_to; } add_filter( 'login_redirect', 'wpse40745_redirect_on_login', 20, 3 );