如何让WordPress非移动端跳转忽略/wp-admin及wp-login.php页面
解决WordPress非移动设备重定向忽略后台登录页的问题
原代码里的is_admin()仅对已登录进入后台的场景生效,未登录状态下访问wp-login.php或/wp-admin/时,这个函数会返回false,所以还是会触发重定向。要解决这个问题,需要额外判断当前请求的页面是否属于后台登录或入口路径,修改后的代码如下:
// 获取当前访问的路径 $current_uri = $_SERVER['REQUEST_URI']; // 判断是否是后台相关页面(登录页或后台入口) $is_admin_related = str_contains($current_uri, '/wp-admin/') || str_contains($current_uri, 'wp-login.php'); // 仅当非后台页面且非移动设备时执行重定向 if (!$is_admin_related && !wp_is_mobile()) { wp_redirect('https://my-desktop-site.com'); exit; }
代码说明:
- 通过
$_SERVER['REQUEST_URI']获取当前访问的具体路径 - 检查路径是否包含
/wp-admin/或wp-login.php,匹配则判定为后台相关页面 - 只有同时满足「不是后台相关页面」和「非移动设备」两个条件时,才触发重定向逻辑
这样不管是否登录,访问后台登录页或后台入口时都不会被强制重定向,可正常进入登录或后台界面。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

