2016-10-31 3 views
3

У меня есть функция входа в систему, сохраненную в пользовательских подключаемых модулей, которые чрезмерно едет стандартный Wordpress логин, чтобы, когда пользователь входит в систему, перенаправить их на нужную страницу:Override WordPress Войти редирект функция

function admin_login_redirect($redirect_to, $request, $user) 
{ 
global $user; 
if(isset($user->roles) && is_array($user->roles)) { 
if(in_array("administrator", $user->roles)) { 
return $redirect_to; 
} else { 
return home_url(); 
} 
} 
else 
{ 
return $redirect_to; 
} 
} 
add_filter("login_redirect", "admin_login_redirect", 10, 3); 

это работает но теперь мне нужно создать дополнительную/альтернативную страницу входа, которая, если используется, перенаправляет пользователя на другую целевую страницу.

кажется, что мой только три логических вариант либо:

  • Написать код в новой странице входа, чтобы игнорировать функцию плагина редиректа (это даже возможно !?)
  • Признать шаблон для входа/form пользователь использует и строит эту логику в вышеуказанной функции или
  • Перемещение функции переадресации (выше) на новую/альтернативную страницу входа.

Кто-нибудь знает, возможно ли одно из них, и если да, то как я могу это подействовать?

ответ

0

Я думаю, что лучшим вариантом является создание новой страницы входа и определение перенаправления после действия входа на эту страницу.

Шаблон страницы для пользовательской странице входа в систему будет выглядеть примерно так:

<?php 
    // Define custom redirect 
    $custom_redirect = "REDIRECT_URL"; 

    // If user is logged out 
    if (!is_user_logged_in()) { 
     $args = array(
      'redirect' => $custom_redirect 
     ); 

     // Output the login form with arguments 
     wp_login_form($args); 
    } 
    // Display below if user is logged in 
    else { 
     wp_loginout(home_url()); // Display "Log Out" link. 
     echo " | "; 
     wp_register('', ''); // Display "Site Admin" link. 
    } 
?> 

Вы можете обернуть это внутри custom_login_form() функции внутри functions.php и затем вызвать эту функцию внутри пользовательского шаблона страницы Войти или поместите его непосредственно в шаблон пользовательской учетной записи. Вы можете указать шаблон настраиваемой страницы page-login.php, который будет автоматически применяться к странице WP с именем «login».

Full guide on creating a custom page template for the login page.

Full guide on customizing the login form.

Смежные вопросы