是否可以将用户名合并到登录重定向中?

时间:2013-02-13 作者:shngrdnr

我正在使用WP作为一个网站的CMS,该网站将提供给许多不同产品的用户。我已成功创建了一个函数,该函数将根据用户的角色重定向用户:

add_filter( \'login_redirect\', \'my_login_redirect\', 10, 3 );
function my_login_redirect( $redirect_to, $request, $user ) {
if ( is_array( $user->roles ) ) {
    if ( in_array( \'administrator\', $user->roles ) )
        return home_url( \'/wp-admin/\' );
    elseif ( in_array( \'editor\', $user->roles ) )
        return home_url( \'/wp-admin/\' );
    elseif ( in_array( \'subscriber\', $user->roles ) )
        return home_url();
    elseif ( in_array( \'map_user\', $user->roles ) )
        return home_url( \'/mapping/\' );
    elseif ( in_array( \'news_subscriber\', $user->roles ) )
        return home_url( \'/category/newsletter/\' );
    else
        return home_url();
}
一些用户需要重定向到共享其用户名的特定页面。

如何检索用户名并将其合并到重定向中?因此:

...
elseif ( in_array( \'map_user\', $user->roles ) )
    return home_url( \'/mapping/[username-based-page-goes-here]/\' );
...
[我知道Peter的重定向插件,我宁愿使用Wordpress的核心功能来节省创建时手动定制每个用户的访问权限。我还使用其他与Peter的插件冲突的插件。]

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

$user->data 应该有你想要的。

// snip
elseif ( in_array( \'map_user\', $user->roles ) )
    return home_url( "/mapping/{$user->data->user_login}/" );
// end snip
添加if (!is_wp_error($user)) wp_die(var_dump($user)); 查看您必须使用的功能。Caution: <这会破坏一切(它也会抛出一个通知)它仅用于调试。

结束

相关推荐

login_redirect for Mobile Web

我的网站的移动版本位于mywebsite.com/mobile 还有一个登录表单wp-login.php. 目前,当用户从主页登录时,如果他们不是管理员,则会重定向到他们的Buddypress配置文件如果他们从主页登录,我希望保持此状态,但是,如果他们从mywebsite.com/mobile, 我希望他们被重定向到mywebsite.com/mobile/dash.//REDIRECT USERS TO ACTIVITY PAGE WHEN THEY LOGIN add_filter( \"lo