用户登录时将主页重定向到另一个页面

时间:2020-10-28 作者:anmong

我有一个wordpress,用户可以注册并成为会员,我如何获得我的主页https://sample.com 已重定向到设置页面https://sample.com/setting 例如因此,当用户登录时,他们无法访问主页https://sample.com

1 个回复
SO网友:Yash Tiwari

如果要在登录后重定向用户,请使用以下代码:

/**
 * WordPress function for redirecting users on login based on user role
 */
function wpdocs_my_login_redirect( $url, $request, $user ) {
    if ( $user && is_object( $user ) && is_a( $user, \'WP_User\' ) ) {
        if ( $user->has_cap( \'administrator\' ) ) {
            $url = admin_url();
        } else {
            $url = home_url( \'/setting/\' );
        }
    }
    return $url;
}
 
add_filter( \'login_redirect\', \'wpdocs_my_login_redirect\', 10, 3 );
如果要限制用户访问主页,请使用以下代码:

function redirect_user_to_page(){
    if ( is_user_logged_in() && is_front_page() ) {
     $user = wp_get_current_user();
     if ( !in_array( \'administrator\', (array) $user->roles ) ) {
        wp_redirect(\'https://sample.com/setting\');
        exit();
     }
     
    } else {
        // user not logged in, nothing
    }
}
add_action(\'wp_head\', \'redirect_user_to_page\');

相关推荐

无法以管理员身份从主站点在WordPress多站点网络上添加新插件或主题。错误:ERR_TOO_MANY_REDIRECTS

我不能以超级管理员的身份从主站点向wordpress多站点网络添加新插件或主题。它显示以下错误:ERR\\u TOO\\u MANY\\u重定向。然而,我可以访问所有页面,登录到每个站点的仪表板,甚至可以更改已安装插件或主题的现有代码。我无法安装任何新的,网络陷入了循环。但是,如果我在wp config中使用以下代码关闭多站点选项,则可以避免该问题。php:define(\'MULTISITE\', false); define(\'SUBDOMAIN_INSTALL\', false);