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

如何移除WooCommerce商品链接中的"product" slug?

移除WooCommerce商品URL中的"product" Slug是否可行?

Hey,当然可行!我帮不少WooCommerce店铺运营者搞定过这个需求,下面给你两种实操方案,按需选择就行:

方案一:用插件(零代码,新手友好)

如果你不想碰代码,用一款叫Permalink Manager Lite的免费插件就能轻松搞定:

  • 安装并启用插件后,进入WordPress后台的「Settings → Permalink Manager」
  • 切换到「WooCommerce」标签页,找到「Product permalink」的自定义规则
  • 把默认的/product/%product%/改成/%product%/,保存设置
  • 最后一定要去「Settings → Permalinks」页面,随便切换一个固定链接结构再切回来保存,刷新WordPress的重写规则,避免出现404问题

方案二:自定义代码(无插件依赖,适合有一定技术基础的用户)

如果你不想额外安装插件,可以在主题的functions.php文件(推荐用子主题的functions.php,避免主题更新丢失代码)里添加以下代码:

// 移除商品URL中的product slug
function remove_product_slug( $post_link, $post, $leavename ) {
    if ( 'product' != $post->post_type || 'publish' != $post->post_status ) {
        return $post_link;
    }
    $post_link = str_replace( '/' . $post->post_type . '/', '/', $post_link );
    return $post_link;
}
add_filter( 'post_type_link', 'remove_product_slug', 10, 3 );

// 修复移除slug后可能出现的404问题
function parse_request_trick( $query ) {
    if ( ! $query->is_main_query() || 2 != count( $query->query ) || ! isset( $query->query['page'] ) ) {
        return;
    }
    if ( ! empty( $query->query['name'] ) ) {
        $query->set( 'post_type', array( 'post', 'product', 'page' ) );
    }
}
add_action( 'pre_get_posts', 'parse_request_trick' );

添加完代码后,同样要去「Settings → Permalinks」页面刷新重写规则。

重要注意事项

  • 确保你的商品slug和现有文章、页面的slug没有重复,否则会出现访问冲突(比如一个页面和一个商品slug都是shirt,只会显示其中一个)
  • 如果之后遇到404问题,优先检查重写规则是否刷新,或者是否存在slug冲突

内容的提问来源于stack exchange,提问作者Dr.MTR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:07:43