我正在使用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的插件冲突的插件。]
最合适的回答,由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: <这会破坏一切(它也会抛出一个通知)它仅用于调试。