WordPress 自定义注册登录移除 wp-login.php

文 / @WordPress主题

WordPress自定义登陆页面

本站曾经介绍过如何修改WordPress默认的登陆界面。但是那篇文章并没有涉及如何移除wp-login.php文件。今天我在查看一个主题的代码时发现了解决问题的方法。

其实这个方法非常简单,只需要在WordPress的初始化过程中添加一个功能即可。代码会判断是否有访问wp-login.php的GET请求,并重定向到自定义的登陆地址。另外,在这个过程中需要注意,在自定义的登陆界面中需要向wp-login.php发送注册和登陆数据,所以不能使用POST请求。

重定向wp-login.php到自定义登陆页面


add_action('init',function(){
$page_viewed=basename($_SERVER['REQUEST_URI']);
if($page_viewed==="wp-login.php" && $_SERVER['REQUEST_METHOD']==='GET'){
wp_redirect(home_url());
exit;
}
});

登陆失败后跳转到自定义登陆页面

在处理登陆失败的情况时,同样需要跳转到自定义的登陆失败页面。


add_action('wp_login_failed',function(){
wp_redirect(home_url('?login=failed'));
exit;
});

登出后跳转到自定义登陆页面

最后我们需要在用户登出后也设置一个跳转链接。可以让用户重定向到首页,或者一些其他的页面。


add_action('wp_logout',function(){
wp_redirect(home_url('?login=failed'));
exit;
});
添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。