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

WordPress使用Dokan为商品URL动态加slug后访问404如何解决

问题解决步骤

根因说明

当前配置的重写规则完全不匹配生成的商品URL结构,且没有传递商品slug参数,WordPress无法解析URL对应的内容,因此返回404错误。

具体修改方案

1. 替换重写规则相关代码

删除之前添加的查询变量、重写规则代码,替换为以下代码:

// 注册自定义查询变量
add_filter('query_vars', 'custom_add_query_vars');
function custom_add_query_vars($qVars){
    $qVars[] = "vendor_slug";
    return $qVars;
}

// 新增正确的重写规则
add_action( 'init', 'custom_rewrites_init' );
function custom_rewrites_init(){
    add_rewrite_rule(
        // 匹配格式:business/[供应商slug]/[商品slug]/
        'business/([^/]+)/([^/]+)/?$',
        // 传递参数:指定内容类型为商品,传入供应商slug和商品slug
        'index.php?post_type=product&vendor_slug=$matches[1]&name=$matches[2]',
        'top' 
    );
}

如果URL前缀不是business,请将重写规则第一个参数的开头替换为实际使用的前缀。

2. 手动刷新重写规则

代码添加完成后,进入WordPress后台「设置」-「固定链接」页面,不需要修改任何配置,直接点击底部的「保存更改」按钮,即可让新的重写规则生效。不要在init钩子中通过代码自动刷新重写规则,会严重影响站点性能。

3. 功能验证

刷新规则后再次访问商品URL,即可正常打开商品页面,不会再返回404。如果需要根据URL中的供应商slug做额外的权限校验、数据筛选等逻辑,可以在pre_get_posts钩子中获取vendor_slug查询变量做对应处理。


内容的提问来源于stack exchange,提问作者Daniel Garcia Sanchez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:45:04