我正在使用自定义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' );
答案 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()返回的值。尝试上面的代码。