wp_signon()无法正常工作,如果管理员未登录,则管理员无法访问wp-admin?

时间:2018-08-13 12:46:28

标签: php wordpress

我正在使用自定义wp主题开发自定义登录/注销功能,问题是管理员无法通过键入example.com/wp-admin来直接访问wp-admin(即仪表板),但是当admin首先登录时仅输入example.com/wp-admin,然后他可以直接访问仪表板而无需进入wp-login表单。

function login_user($creds=""){  
$admin = current_user_can("manage_options");  
if (isset($creds)){  
wp_signon($creds,false);  
if ( is_wp_error($user) ){  
echo $user->get_error_message();  
}elseif(!$admin){  
wp_redirect(home_url());  
}  
}  
}  
add_action( 'after_setup_theme', 'login_user' );

1 个答案:

答案 0 :(得分:0)

function login_user($creds=""){  
$admin = current_user_can("manage_options");  
if (isset($creds)){  
$user= wp_signon($creds,false);  
if ( is_wp_error($user) ){  
echo $user->get_error_message();  
}elseif(!$admin){  
wp_redirect(home_url());  
}  
}  
}  
add_action( 'after_setup_theme', 'login_user' );

您没有为$ user设置一个应该由wp_signon()返回的值。尝试上面的代码。