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

WordPress页面重定向求助:非指定来源访问拦截跳转

WordPress注册流程页面定向限制方案

你可以通过WordPress的template_redirect钩子实现这个需求,核心逻辑是检查用户的访问来源,仅允许从指定流程页面进入目标页面,否则强制重定向到流程起始页。

具体实现代码

将以下代码添加到主题的functions.php文件,或者使用自定义代码插件:

add_action('template_redirect', 'restrict_registration_flow_pages');

function restrict_registration_flow_pages() {
    // 定义限制规则:键为需要限制的页面路径,值为允许的来源页面路径
    $restricted_pages = array(
        '/join/payment-setup/' => '/join/'
        // 可扩展更多规则,比如 '/join/account-confirm/' => '/join/payment-setup/'
    );

    // 获取当前请求的页面路径
    $current_path = '/' . trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/') . '/';

    // 匹配当前页面是否在限制列表中
    if (array_key_exists($current_path, $restricted_pages)) {
        $allowed_referer = home_url($restricted_pages[$current_path]);
        $referer = wp_get_referer();

        // 若来源不匹配或无来源(直接访问),执行重定向
        if (!$referer || strpos($referer, $allowed_referer) === false) {
            wp_redirect(home_url($restricted_pages[$current_path]));
            exit;
        }
    }
}

补充说明

  • 扩展规则只需在$restricted_pages数组中添加新的键值对,即可实现多步骤的流程限制。
  • wp_get_referer()是WordPress封装的安全函数,比直接读取$_SERVER['HTTP_REFERER']更可靠。
  • 若用户浏览器禁用了Referer发送,所有直接访问都会被判定为不符合规则并触发重定向,这符合流程限制的预期逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 00:38:15