WordPress - перенаправлять не-администраторов на домашнюю страницу при входе - PullRequest
0 голосов
/ 12 апреля 2020

Извиняюсь за любительские вопросы, но я немного борюсь в WordPress, благодарен за любую помощь.

Я создал сайт LMS с использованием LearnDa sh. Домашняя страница - это просто логин, поэтому я добавил следующее к functions.php:

function admin_redirect() {
 if ( !is_user_logged_in()) {
   wp_redirect( home_url('login') );
   exit;
 }
}
add_action('get_header', 'admin_redirect');

Я установил первую страницу в качестве профиля учащегося. Я предполагал, что пользователи будут перенаправлены на это при входе в систему, но они попадут на панель управления wp-admin (которую я никогда не хочу, чтобы не администраторы видели).

Поскольку мои навыки кодирования - это штаны, я установил 'Peter's Login Redirect' и попросил перенаправить пользователей на домашнюю страницу / главную страницу (это страница профиля пользователя).

Затем я попробовал его в разных браузерах, и иногда я получаю Первая страница / профиль пользователя, но иногда я возвращаюсь в WP-Admin. Я пробовал режим инкогнито, очистка файлов cookie и т. Д. c.

Я, очевидно, являюсь маппетом - поскольку все, что я хочу, очень просто:

  • Все пользователи - принудительный вход
  • Не администраторы - от логина go до главной страницы с профилем пользователя (через короткий код Learnda sh)
  • Администраторы - от логина go до панели администратора / wp-admin

Благодарен, если у кого-то есть время помочь любителю, пытающемуся учиться!

1 Ответ

0 голосов
/ 12 апреля 2020

Вместо использования плагина перенаправления входа в систему попробуйте подключиться к login_redirect. Вот пример, основанный на примере в документации .

function example_login_redirect( $redirect_to, $request, $user ) {
    //is there a user to check?
    if ( isset( $user->roles ) && is_array( $user->roles ) ) {
        //check for admins
        if ( in_array( 'administrator', $user->roles ) ) {
            // redirect Admins to WP Admin
            return home_url('wp-admin');
        } else {
            // redirect everyone else to the home page
            return home_url();
        }
    } else {
        return home_url();
    }
}
add_filter( 'login_redirect', 'example_login_redirect', 10, 3 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...