带有筛选器login_redirect的$user参数仍然返回null


function admin_default_page($user) {
$url_home = get_site_url();
global $user;
// die(var_dump($user));
$roles = $user->roles;
if($role != 'subscriber'){
// exit( wp_redirect(home_url()));
return $url_home.'/wp-admin/edit.php?post_type=page';
}else{
return $url_home;
}
}
add_filter('login_redirect', 'admin_default_page',10,3); 

$user仍然返回nullwordpress的codex谈三个论点https://developer.wordpress.org/reference/hooks/login_redirect/

如果我把这3个参数,我有php错误:";函数admin_default_page((的参数太少">

慢慢地,慢慢地好起来了,但是。。。。我必须添加

add_action('init', 'do_output_buffer');
function do_output_buffer() {
ob_start();
}

然后$user->角色仍然返回null,因此wordpress重定向到

$url_home.'/wp-admin/edit.php?post_type=page'

而不仅仅是

$url_home

首先,您将角色与未定义变量$role进行比较,我认为它应该是角色。其次,您还没有在addfilter中定义参数的数量在下面试试它应该可以

function admin_default_page($redirect_to, $request, $user) {
$url_home = get_site_url();
global $user;
// die(var_dump($user));
if(!in_array( 'subscriber', $user->roles )){
return $url_home.'/wp-admin/edit.php?post_type=page';
}else{
return $url_home;
}
}
add_filter('login_redirect', 'admin_default_page', 10, 3); 

最新更新