我的做法是相同的,但略有不同,并处理登录普通用户或管理员的情况。我假设你知道把这些东西放在你的;功能。php“;或同等产品。
add_filter(\'login_url\', \'your_login_url\', 10, 2 );
add_action(\'login_init\', \'your_login_page\');
add_action(\'wp_login\', \'your_login_redirect\', 10, 2);
// assuming that your new front end login url is "/login", use these:
function your_login_url($login_url, $redirect) {
return home_url(\'/login/\');
}
function your_login_page() {
wp_redirect(home_url(\'/login/\'), 302);
}
// if admin send them to the dashboard, otherwise leave them on the frontend
function your_login_redirect($user_login, $user) {
if (current_user_can(\'activate_plugins\')) {
wp_redirect(\'/wp-admin/index.php\', 302);
exit();
}
}
最后,如果您想在前端处理密码重置(实际的处理代码有点复杂),那么可以使用以下过滤器:
add_filter(\'lostpassword_url\', \'your_lost_password_page\', 10, 2);
在通过表单收集用户电子邮件地址后,您必须发送一封带有一次性使用链接的重置电子邮件,然后提供该链接的验证,以及允许用户重置其密码的另一个表单。(并可能验证文本)。每个页面也需要某种响应消息。