[英]Override wordpress login redirect function
我有一個存儲在自定義插件中的登錄功能,它超越了標准的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.
}
?>
您可以將它包裝在custom_login_form()
函數中,然后在自定義登錄頁面模板中調用該函數,或將其直接放在自定義登錄頁面模板中。 您可以命名自定義頁面模板page-login.php
,它將自動應用於名為“login”的WP頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.