2016-05-13 77 views
1

我正在使用下面的功能将非管理员用户重定向到我的站点的主页,而不是登录时的管理页面,并且我想知道是否存在任何方式适应功能指向我的网站的子域?用户登录Wordpress站点时重定向到子域的功能

我已经尝试输入site_url()中子域的完整URL,但这不起作用。是否有另一种方法来实现这一点?基本上我想让用户在登录时重定向到我们的论坛论坛。

function acme_login_redirect($redirect_to, $request, $user ) { 
    return (is_array($user->roles) && in_array('administrator', $user->roles)) ? admin_url() : site_url(); 
} 
add_filter('login_redirect', 'acme_login_redirect', 10, 3); 

回答

1

login_redirect过滤器调用wp_safe_redirect()如果一个字符串(URL)在login_redirect过滤功能被返回。

然后wp_safe_redirect()检查返回的字符串(URL)是在允许的主机或不的列表中,如果在允许的主机存在返回的字符串然后wp_safe_redirect()将重定向用户到返回字符串(URL),否则用户将而是将其重定向到siteurl上的wp-admin。

因此,在添加login_redirect过滤器之前,您应该使用allowed_redirect_hosts过滤器在白名单中添加主机。

function my_allowed_redirect_hosts($content){ 
    $content[] = 'google.com'; // Do not add http:// 

    return $content; 
} 
add_filter('allowed_redirect_hosts' , 'my_allowed_redirect_hosts' , 10); 

function acme_login_redirect($redirect_to, $requested_redirect_to, $user) { 
    if (is_array($user->roles) && in_array('administrator', $user->roles)) { 
     return admin_url(); 
    } 
    else 
    { 
     return 'http://google.com'; 
    } 
} 
add_filter('login_redirect', 'acme_login_redirect', 10, 3); 

欲了解更多信息检查allowed_redirect_hosts

要了解更多有关如何login_redirect作品,去login_redirect和滚动到行807

+1

一个可行的治疗。感谢功能和详细的解释。很有帮助。 – Nick

相关问题