代码之家  ›  专栏  ›  技术社区  ›  Meiji

wp_signon()不起作用,如果wp admin未在前面登录,则管理员无法访问他?

  •  0
  • Meiji  · 技术社区  · 8 年前

    我正在开发自定义wp主题中的自定义登录/注销功能,问题是管理员无法通过键入example.com/wp-admin直接访问wp-admin即仪表板,但当管理员在前面登录然后键入example.com/wp-admin时,他可以直接访问仪表板,而不必转到wp登录表单。

    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 回复  |  直到 8 年前
        1
  •  0
  •   Sarb    8 年前
    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()应该返回的值。试试上面的代码。