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

如何移除Custom Post Type UI创建的Product自定义文章类型Slug且避免冲突

解决WordPress自定义文章类型(product)层级URL移除slug且不冲突的问题

核心问题原因

你遇到的404是因为WordPress默认重写规则没正确识别层级结构的product文章:移除product/ slug后,父级+子级的URL会被当成普通页面查找,找不到就返回404;而把slug设为/会让product规则覆盖大部分普通页面规则,导致普通页面失效。

分步解决方法

  1. 调整CPT UI的Rewrite配置

    • 保持Hierarchical = True、Rewrite = True、With Front = False、Capability Type = page不变
    • 将Custom Rewrite Slug设为空字符串(不是/,直接留空)
    • 保存CPT设置
  2. 添加自定义重写规则
    把下面的代码加到当前主题的functions.php里,或者创建自定义插件存放(推荐用插件,避免主题更新丢失代码):

    // 为层级product添加重写规则
    function custom_product_rewrite_rules() {
        // 匹配二级结构:父级slug/子级slug
        add_rewrite_rule(
            '^([^/]+)/([^/]+)/?$',
            'index.php?product=$matches[2]',
            'top'
        );
        // 如需支持三级结构,取消下面注释
        // add_rewrite_rule(
        //     '^([^/]+)/([^/]+)/([^/]+)/?$',
        //     'index.php?product=$matches[3]',
        //     'top'
        // );
    }
    add_action('init', 'custom_product_rewrite_rules');
    
    // 让WordPress识别product查询变量
    function custom_product_query_vars($vars) {
        $vars[] = 'product';
        return $vars;
    }
    add_filter('query_vars', 'custom_product_query_vars');
    

    这段代码会让WordPress优先检查URL里的子级slug是否属于product文章,是就加载对应内容;不是则自动 fallback到普通页面规则,不会影响其他页面访问。

  3. 刷新固定链接规则
    进入WordPress后台「设置」→「固定链接」,不用修改任何设置,直接点击「保存更改」。这一步会强制更新重写规则,让新添加的规则生效。

额外注意事项

  • 尽量避免product文章的slug和普通页面slug重复,否则可能出现内容匹配优先级问题(建议保持slug唯一)
  • 如需支持更多层级的product页面,按照示例格式继续添加对应重写规则即可

内容的提问来源于stack exchange,提问作者Lahiru Madushan Koralage

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 18:07:25