我意识到这可能由服务器来处理更好,我最后在.htaccess:
# Block regular login/registration and profile pages
<Files wp-login.php>
Order Deny,Allow
Deny from All
</Files>
<Files profile.php>
Order Deny,Allow
Deny from All
</Files>
这将阻止对这些页面的任何请求,并强制用户使用我的自定义登录和注册页面。
Edit: 我认为我没有把这一点说清楚,我也不向大多数WordPress用户推荐这种解决方案。
我有一个自定义的用户注册、登录和配置文件系统。这些并不扩展默认的WordPress功能,而是完全独立的,不需要访问这些页面,因为所有逻辑和请求都由系统本身处理,并且不会传递(但是它们使用WordPress功能和WordPress数据库中的默认用户表)。
这与插件不同,插件提供了一个自定义登录页面,只是为了更改主题,但实际上会将POST请求发送回wp-login.php 因为这将打破我的解决方案。