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

如何在WordPress用add_rewrite_rule实现查询链URL转美观URL并解决404问题

WordPress自定义URL重写404问题修复方案

现有规则的错误原因

  • 正则开头多了斜杠:WordPress 的 add_rewrite_rule() 方法匹配路径时默认不带根路径开头的斜杠,加了开头斜杠会导致规则无法命中
  • 路径匹配与实际需求不符:你需要适配的路径前缀是buying/properties-for-sale/,如果你的页面slug不是properties-for-sale-salisbury-2,规则内的路径和pagename参数就会匹配错误
  • 正则逻辑不严谨:原有正则没有限定匹配结束位置,参数段匹配规则容错性差,容易出现匹配错乱
  • 未注册自定义查询参数:WordPress默认不会识别property这个自定义参数,就算规则命中也无法正常传递参数值
  • 未刷新重写缓存:修改重写规则后如果不刷新固定链接配置,新规则不会生效

正确配置代码

// 注册自定义查询参数,让WordPress识别property参数
add_filter('query_vars', function ($custom_vars) {
    $custom_vars[] = 'property';
    return $custom_vars;
});

// 新增重写规则
add_action('init', function () {
    // 适配路径:test.com/buying/properties-for-sale/参数值 的场景
    add_rewrite_rule(
        '^buying/properties-for-sale/([^/]+)/?$',
        'index.php?pagename=buying/properties-for-sale&property=$matches[1]',
        'top'
    );

    // 如果你实际的页面slug是properties-for-sale-salisbury-2,父页面为buying,请注释上面的规则,启用下面这条
    // add_rewrite_rule(
    //     '^buying/properties-for-sale-salisbury-2/([^/]+)/?$',
    //     'index.php?pagename=buying/properties-for-sale-salisbury-2&property=$matches[1]',
    //     'top'
    // );
});

生效操作步骤

  • 将上述代码添加到当前使用主题的functions.php文件,或者自定义功能插件的代码文件中
  • 进入WordPress后台,打开「设置」-「固定链接」页面,无需修改任何配置,直接点击「保存更改」,触发重写规则缓存刷新
  • 测试访问目标美观URL,确认页面正常加载,可在页面模板中通过get_query_var('property')获取到传递的参数值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:45:03