📝 问题描述
在使用 lolimeow-shiroki 主题时,未登录用户访问 wp-admin 后台时,会被重定向到主题的自定义登录页面:
signin?redirect_to=http%3A%2F%2Fshiroki.local%2Fwp-admin%2F
这是主题的设计功能,使用自定义登录页面替代默认的 wp-login.php。
🔍 问题原因
主题在以下两个位置实现了自定义登录功能:
1️⃣ 禁用默认登录页面(fun-user.php:L838)
add_action('init', 'boxmoe_disable_default_login_page', 1);
该函数会将所有访问 wp-login.php 的请求重定向到自定义登录页面。
2️⃣ 替换登录 URL(fun-user.php:L871)
add_filter('login_url', 'boxmoe_custom_login_url', 10, 2);
该过滤器将所有登录链接替换为自定义登录页面 URL。
✅ 解决方案
方法一:临时注释(快速恢复默认登录)
编辑文件:app/public/wp-content/themes/lolimeow-shiroki/core/module/fun-user.php
步骤 1:注释禁用默认登录页面的动作
/* 🔒 禁用WordPress默认登录页面wp-login.php
* 🎯 将所有访问wp-login.php的请求重定向到自定义登录页面
* ⚠️ 但保留必要的认证功能(如重置密码链接验证)
* ⏸️ 临时注释:恢复默认登录页面以便正常登录
*/
// 注释下方这个代码
// add_action('init', 'boxmoe_disable_default_login_page', 1);
function boxmoe_disable_default_login_page() {
步骤 2:注释替换登录 URL 的过滤器
/* 🔒 替换WordPress默认登录URL
* 🎯 将所有wp-login.php链接替换为自定义登录页面链接
* ⏸️ 临时注释:恢复默认登录页面以便正常登录
*/
// 注释下方这个代码
// add_filter('login_url', 'boxmoe_custom_login_url', 10, 2);
function boxmoe_custom_login_url($login_url, $redirect) {
效果:
- ✅ 访问
wp-admin会跳转到默认的wp-login.php - ✅ 可以正常使用 WordPress 默认登录页面
方法二:恢复主题自定义登录(取消注释)
当你想要恢复主题的自定义登录页面时,只需取消注释:
add_action('init', 'boxmoe_disable_default_login_page', 1);
add_filter('login_url', 'boxmoe_custom_login_url', 10, 2);
📂 相关文件位置
app/public/wp-content/themes/lolimeow-shiroki/core/module/fun-user.php
├── L838: add_action('init', 'boxmoe_disable_default_login_page', 1);
└── L871: add_filter('login_url', 'boxmoe_custom_login_url', 10, 2);
💡 补充说明
主题的自定义登录页面位置
- 模板文件:
page/p-signin.php - 页面 URL:
signin
已登录用户的重定向逻辑
在 p-signin.php:L44-89 中,主题处理了已登录用户的访问:
- 管理员:跳转到后台
wp-admin - 普通用户:跳转到首页
- 有 redirect_to 参数:跳转到指定页面
其他相关功能
- 禁止非管理员访问后台:
core/module/fun-optimize.php:L72-130 - 退出后重定向:
fun-user.php:L910-921
为避免再次出现这个问题
- 记得在主题后台的「用户设置」绑定「登录页面」
- 「登录页面」记得在WP后台的页面中创建模板「登录页面」
- 当无法访问后台的时候,使用登录页面URL登录后,再次访问后台URL即可正常访问
评论(0)
暂无评论