时间:2024-04-04
本站曾经介绍过如何修改WordPress默认的登陆界面。但是那篇文章并没有涉及如何移除wp-login.php文件。今天我在查看一个主题的代码时发现了解决问题的方法。
其实这个方法非常简单,只需要在WordPress的初始化过程中添加一个功能即可。代码会判断是否有访问wp-login.php的GET请求,并重定向到自定义的登陆地址。另外,在这个过程中需要注意,在自定义的登陆界面中需要向wp-login.php发送注册和登陆数据,所以不能使用POST请求。
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; });
Copyright © 2019-2024 mysql.hk