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

求助:修改WooCommerce产品固定链接为查询参数形式

解决WooCommerce产品URL重写为查询参数的方案

方案1:利用WordPress重写规则+WooCommerce产品映射(推荐,保留全站功能)

直接通过PHP代码添加自定义重写规则,同时完成查询变量到产品的映射,无需额外插件:

  1. 添加核心代码
    将以下代码放到主题的functions.php文件,或者独立的自定义插件中:
// 注册自定义查询变量
function register_artnr_var($vars) {
    $vars[] = 'artnr';
    return $vars;
}
add_filter('query_vars', 'register_artnr_var');

// 添加URL重写规则
function add_artnr_rewrite_rule() {
    // 匹配 /artnr/数字/ 格式的URL
    add_rewrite_rule(
        '^artnr/([0-9]+)/?$',
        'index.php?artnr=$matches[1]',
        'top'
    );
}
add_action('init', 'add_artnr_rewrite_rule');

// 处理请求,加载对应产品
function load_product_by_artnr() {
    global $wp_query;
    if (!isset($wp_query->query_vars['artnr']) || empty($wp_query->query_vars['artnr'])) return;

    $artnr = $wp_query->query_vars['artnr'];
    // 这里根据你的实际情况选择匹配逻辑:
    // 情况1:artnr是产品SKU
    $product_id = wc_get_product_id_by_sku($artnr);
    // 情况2:artnr是自定义字段(替换成你的字段名)
    // $product_id = get_posts(array(
    //     'post_type' => 'product',
    //     'meta_key' => 'artnr',
    //     'meta_value' => $artnr,
    //     'posts_per_page' => 1,
    //     'fields' => 'ids'
    // ))[0] ?? 0;

    if ($product_id) {
        // 重置查询参数,让WordPress加载对应产品页面
        $wp_query->set('p', $product_id);
        $wp_query->set('post_type', 'product');
        $wp_query->is_single = true;
        $wp_query->is_product = true;
        status_header(200);
    } else {
        // 无匹配产品时返回404
        $wp_query->set_404();
        status_header(404);
    }
}
add_action('template_redirect', 'load_product_by_artnr');
  1. 刷新重写规则
    代码添加后,进入WordPress后台「设置」→「固定链接」,直接点击「保存更改」(无需修改任何设置),触发重写规则刷新。

方案2:.htaccess直接跳转(仅适用于artnr对应产品ID的场景)

如果你的artnr就是产品ID,可以在.htaccess的# BEGIN WordPress块内添加以下规则:

RewriteRule ^artnr/([0-9]+)/?$ /?p=$1&post_type=product [L,QSA]

注意:如果artnr是SKU或自定义字段,此方法无效,因为.htaccess无法直接查询数据库。

关键注意事项

  • 不要修改WooCommerce核心文件,所有自定义代码放在主题functions.php或独立插件中,避免更新丢失。
  • 若有现有自定义PHP集成,先在测试环境验证代码兼容性。
  • 方案1中需根据实际业务逻辑,选择SKU或自定义字段的匹配方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 19:58:10