Php 重写wordpress登录重定向功能

Php 重写wordpress登录重定向功能,php,wordpress,Php,Wordpress,我有一个存储在自定义插件中的登录功能,它超越了标准Wordpress登录,一旦用户登录,就会将其重定向到所需页面: function admin_login_redirect( $redirect_to, $request, $user ) { global $user; if( isset( $user->roles ) && is_array( $user->roles ) ) { if( in_array( "administrator", $user->

我有一个存储在自定义插件中的登录功能,它超越了标准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);
这是一种享受,但我现在需要构建一个额外的/可选的登录页面,如果使用该页面,将用户重定向到不同的登录页面

看来我唯一的三个逻辑选择是:

  • 在新登录页面中编写代码以忽略插件重定向功能(这可能吗!)
  • 识别用户正在使用的登录模板/表单,并将此逻辑构建到上述函数或
  • 在新/备选登录页面中超越重定向功能(如上)

有人知道这两种方法是否可行吗?如果可行,我将如何操作?

我认为最好的选择是创建一个新的登录页面,并在该页面上定义登录操作后重定向

自定义登录页面的页面模板如下所示:

<?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.
    }
?>

您可以将其包装在functions.php中的
custom\u login\u form()
函数中,然后在自定义登录页面模板中调用该函数,或者直接将其放置在自定义登录页面模板中。您可以将自定义页面模板命名为
page login.php
,该模板将自动应用于名为“login”的WP页面