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

WordPress:如何结合get_query_var实现多URL(文件读取)触发模板包含?

多URL定向并结合get_query_var的实现方案

步骤1:准备urls.txt规则文件

把需要触发定向的URL规则写入文件,放在WordPress主题根目录(和functions.php同目录),支持两种格式:

  • 纯路径(不带首尾斜杠):每行一个目标路径,比如
    pagename
    another-target-page
    custom-path
    
  • 路径+query变量组合:用|分隔路径和query条件,比如
    pagename|ref=special
    another-target-page|action=load&type=vip
    

步骤2:替换functions.php中的代码

把原来的单URL判断代码替换成以下逻辑,实现多规则匹配+query变量验证:

add_action('wp', function() {
    // 定义规则文件路径
    $urls_file = get_stylesheet_directory() . '/urls.txt';
    
    // 容错:文件不存在直接返回,避免报错
    if (!file_exists($urls_file)) {
        return;
    }
    
    // 读取规则文件,自动忽略空行和换行符
    $url_rules = file($urls_file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    
    // 获取当前请求的路径(去除首尾斜杠)
    $current_path = trim(parse_url(add_query_arg(array()), PHP_URL_PATH), '/');
    
    // 遍历规则逐一匹配
    foreach ($url_rules as $rule) {
        $rule_parts = explode('|', $rule);
        $target_path = trim($rule_parts[0]);
        
        // 先匹配路径,不匹配直接跳过当前规则
        if ($current_path !== $target_path) {
            continue;
        }
        
        // 如果规则包含query条件,验证对应query变量
        if (isset($rule_parts[1])) {
            parse_str($rule_parts[1], $query_conditions);
            $is_query_match = true;
            
            foreach ($query_conditions as $key => $value) {
                if (get_query_var($key, '') !== $value) {
                    $is_query_match = false;
                    break;
                }
            }
            
            // query不匹配则跳过
            if (!$is_query_match) {
                continue;
            }
        }
        
        // 路径匹配(且query验证通过),加载目标脚本并终止后续流程
        include(locate_template('give_some.php'));
        exit();
    }
});

代码说明

  • 规则兼容:同时支持纯路径和带query条件的规则,无需额外修改代码
  • query验证:用get_query_var()读取当前请求的query参数,和规则中的条件逐一比对
  • 容错处理:加入文件存在检查,避免因文件缺失导致站点报错
  • 性能优化:匹配到第一个符合条件的规则后立即执行脚本,减少不必要的遍历

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 00:40:28