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

WordPress wp_redirect跳转异常:管理员无法跳转至维护页求助

解决管理员重定向维护页面的循环重定向问题

嘿,这个问题我之前也踩过坑!你现在的代码触发了无限循环重定向——当管理员被转到/maintenance/页面后,template_redirect钩子会再次运行,代码又检测到当前用户是管理员,于是又执行重定向,浏览器自然会因为这种死循环报错。

给你两个可行的解决方案,选适合你的场景就行:

方案一:利用WordPress页面判断(适合后台创建的维护页面)

如果你的维护页面是在WordPress后台创建的(页面slug为maintenance),只需要在重定向前判断当前页面是不是已经是维护页面即可:

add_action( 'template_redirect', 'custom_redirect' );
function custom_redirect() {
    // 仅当用户是管理员,且当前页面不是维护页面时才执行重定向
    if ( current_user_can('administrator') && !is_page('maintenance') ) {
        wp_redirect( home_url('/maintenance/') );
        exit; // 必须加上,终止后续代码执行,避免额外问题
    }
}

注意:如果你的维护页面slug不是maintenance,把is_page()里的参数改成你实际的页面slug或者页面ID就好。

方案二:直接判断请求路径(适合静态维护页面)

如果你的维护页面是静态HTML文件或者不需要依赖WordPress页面系统,可以直接检查当前请求的URI路径:

add_action( 'template_redirect', 'custom_redirect' );
function custom_redirect() {
    $maintenance_uri = '/maintenance/';
    // 检查用户权限+当前路径是否非维护页面路径
    if ( current_user_can('administrator') && $_SERVER['REQUEST_URI'] !== $maintenance_uri ) {
        wp_redirect( home_url($maintenance_uri) );
        exit;
    }
}

两种方案都能彻底解决循环重定向的问题,替换代码后测试一下应该就能正常工作了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:27:44