Intereting Posts
Недопустимый корень подкаталога Multisite Как превратить shortcode в php? Как программно генерировать 404? Как иметь функцию плагина с использованием глобальных vars в короткий код? Получать идентификаторы дочерних страниц по идентификатору родителя Показывать сообщения, найденные в нескольких категориях через category_name строку запроса? Как я могу использовать WP_Query для отображения только 1 сообщения из пользовательского типа сообщения, если запрос возвращает сообщения с идентификатором соответствия в пользовательском поле Медиа галерея: удалите кнопку «вставить в сообщение», удерживая кнопку «Вставить галерею» Синтаксическая ошибка кода, "userfullName undefined" Показывать изображение, если автор meta (поля профиля) существует вне цикла Сравните «Основной» идентификатор сообщения с идентификатором внутри цикла wp_query Изменение постоянных ссылок на значение по умолчанию (? P = 123) Переписывание каждого URL-адреса Скопировать теги из одного типа сообщений в другой тип сообщения Я хочу создать фильтр для строки запроса, возможно ли это?

Перенаправление входа 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 );