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

WordPress自定义文章类型URL配置问题求助

解决自定义文章类型URL修改导致普通文章/页面404的问题

嘿,这个问题我之前也碰到过——核心原因是你想把自定义文章类型post_product的URL前缀改成category,但这个slug和WordPress内置分类法的默认slug完全重合了。WordPress的重写规则会搞混请求到底是指向你的产品、普通文章还是分类归档,自然就抛出404了。

下面是一步步的解决方法:

1. 调整自定义文章类型的注册参数

先修改你的post_product()函数,调整重写相关配置,既满足URL格式需求,又避免和内置规则冲突:

function post_product() { 
    $args = array( 
        'label' => 'Products', 
        'name' => 'products', 
        'singular_name' => 'product', 
        'public' => true, 
        'show_ui' => true, 
        'capability_type' => 'post', 
        'hierarchical' => false, 
        'has_archive' => 'products', // 保留产品归档的独立slug,避免冲突
        'rewrite' => array(
            'slug' => '%category%', // 用分类slug作为产品URL的前缀
            'with_front' => false, // 不带上固定链接设置里的默认前缀
            'feeds' => true,
            'pages' => true
        ), 
        'query_var' => true, 
        'menu_icon' => 'dashicons-carrot', 
        'menu_position' => 5, 
        'taxonomies' => array( 'category' ), 
        'supports' => array( 'title', 'editor', 'excerpt', 'trackbacks', 'custom-fields', 'revisions', 'thumbnail', 'author') 
    ); 
    register_post_type( 'post_product', $args ); 
} 
add_action( 'init', 'post_product' );

2. 添加自定义重写规则,帮WordPress分清请求

加个函数告诉WordPress:当看到[分类slug]/[产品名称]这种URL时,应该指向你的post_product类型,而不是普通文章:

function custom_post_product_rewrite_rule() {
    // 匹配 分类slug/产品名称 的URL结构
    add_rewrite_rule(
        '^([^/]+)/([^/]+)/?$',
        'index.php?post_type=post_product&name=$matches[2]',
        'top' // 把这个规则优先级设最高,防止被其他规则覆盖
    );
}
add_action('init', 'custom_post_product_rewrite_rule');

3. 刷新重写规则(必做!)

改完代码后一定要刷新WordPress的重写规则,否则新规则不会生效:

  • 登录后台,进入设置 → 固定链接
  • 啥都不用改,直接点保存更改就行,系统会自动刷新规则

4. 验证和排查

  • 先去看你的产品页面,确认URL是不是变成了website.com/[你的分类slug]/product-name
  • 再去访问普通文章和页面,检查404是不是消失了
  • 如果还是有问题,先禁用其他和重写、URL相关的插件,排查是不是插件冲突

划重点:

  • 绝对不能直接用category作为自定义文章类型的slug,这会和内置分类的规则彻底打架
  • 用%category%做变量的话,记得给每个产品都分配分类,不然URL会出问题
  • 刷新重写规则这步千万别忘,很多人改完代码没做这步,白忙活半天

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:16:41