You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress未登录时跳转首页至其他URL,登录或wp-admin保留原地址

解决WordPress未登录访客跳转但保留wp-admin的问题

问题分析

原代码存在三处问题:

  • 仅判断用户是否登录,未排除wp-admin管理后台页面,导致未登录用户访问wp-admin时也被跳转,无法进入登录界面
  • 手动调用了redirect_visitor()函数,而该函数已通过template_redirect钩子挂载,重复执行会引发不必要的逻辑冲突
  • site_url('xyz.com')会生成当前站点域名拼接的错误地址(如abc.com/xyz.com),不符合跳转至外部站点的需求

修正后的代码

将functions.php中的原有代码替换为以下内容:

add_action( 'template_redirect', 'redirect_visitor' );

function redirect_visitor() 
{
    // 仅对未登录且非wp-admin页面的访客执行跳转
    if ( !is_user_logged_in() && !is_admin() ) {
        // 填写完整的目标跳转URL
        wp_redirect( 'https://xyz.com' );
        exit();
    }
}

代码说明

  • is_admin():WordPress内置函数,判断当前是否处于wp-admin管理后台页面,返回true时跳过跳转逻辑
  • !is_user_logged_in():确保跳转仅对未登录访客生效
  • 移除手动调用的redirect_visitor(),仅通过template_redirect钩子触发,保证逻辑在正确的页面加载时机执行
  • 直接传入完整的目标URL给wp_redirect,避免路径拼接错误

内容的提问来源于stack exchange,提问作者Cross Vander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 13:27:21